【问题标题】:How to match half URL using switch case for dynamic page title in php?如何在php中使用switch case为动态页面标题匹配半个URL?
【发布时间】:2018-06-21 05:11:32
【问题描述】:

我想在动态页面的 switch case 中匹配 URL。但我无法在 switch case 中打印变量值。

这是我在标题中的 html 标题代码:

    <title><?php echo $pageTitle; ?></title>

这是php:

    $name=$_GET['id'];
    switch ($_SERVER['PHP_SELF']){
        case "/web/index.php":
            $pageTitle = 'Home';
        break;
        case "/web/new_doc.php":
            $pageTitle = 'Document';
        break;
        case "/web/new_provider.php":
            $pageTitle = 'Provider';
        break;
        case "/web/read.php?id=$name":
            $pageTitle = 'Reader';
        break;      
        default:
            $pageTitle ='Page';

我想像这样匹配 URL:

  read.php?id=amazon prime
  book.php?id[]=A Wasted Hour&id[]=20

有什么方法可以在 switch case 中匹配 URL 的一半,例如 read.php?id= 而不是完整的 URL。

【问题讨论】:

  • 为什么不只和id比较呢?
  • 我用 if else 代替 switch case 解决了我的问题。
  • @vinay 请解释这里的逻辑。为什么read 没有像其他脚本名称一样的文件扩展名?您是否特别需要验证 read 页面加载时的查询字符串中是否有 id 值?我想向您展示处理此任务的另一种方法,但我需要您先澄清一下。
  • read.php 显示与“id”相关的信息。所以我想根据“id”显示标题和元标记。目前我正在使用 if-else 而不是对我来说工作正常。我将发布我目前正在使用的解决方案。

标签: php html switch-statement


【解决方案1】:

标题 HTML:

      <head>
             <title><?php echo $page_title; ?></title>
      </head>

php代码:

    $page=$_SERVER['PHP_SELF'];

    if($page=='/index.php')
    {
    $page_title = 'Home';

    }elseif($page=='/read.php')
    {
    $name=$_GET['id'];
    $page_title= 'Welcome '.$name;
    }elseif($page=='/searchpag.php')
    {   
    $page_title= 'Searchpage';
    } 

【讨论】:

    猜你喜欢
    • 2019-06-09
    • 2011-03-21
    • 2011-10-24
    • 1970-01-01
    • 2011-04-08
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多