PHP类别标题不显示

时间:2019-04-22 19:17:03

标签: php

我正在创建PHP类别页面,我的脚本未显示#标记和+标记添加了类别标题的示例,例如我的URL Localhost

http://localhost/zblog/category/1/2/c++以及我的其他标题添加了这样的http://localhost/zblog/category/1/3/php

类别开头

这是我的代码

if(isset($_GET['srcid'])) {
$srcid = $_GET['srcid'];
$title= $_GET['title'];
}

类别链接

<span class="post-category"><a href="<?php echo $url; ?>
category/1/<?php echo $row['cat_id']  ?>/
<?php echo $row['cat_title']; ?>" title="View all posts in General" rel="category tag">
<?php echo $row['cat_title']; ?></a></span>

网址链接

 <a class="post-source" href="<?php echo $url; ?>
<?php echo 'category/'.rawurlencode($row['cat_id']).'/'.
rawurlencode($row['cat_title']);?>"><h1 class="post-title">
<?php echo $row['cat_title']  ?></h1></a> 

2 个答案:

答案 0 :(得分:0)

您正在以错误的方式为PHP准备链接。另外,您需要使用ecnode特殊字符来通过URL发送。为了使PHP正确解释URL并从中获取值,您需要这样做:

<span class="post-category"><a href="<?php echo $url; ?>?srcid=<?php echo 'category/1/'.rawurlencode($row['cat_id']).'/';  ?>&title=<?php echo rawurlencode($row['cat_title']); ?>" title="View all posts in General" rel="category tag">

这是如何创建PHP链接的示例:

http://web_adress/page.php?first_param=value_of_first_param&second_param=value_of_second_param&third_param=value_of_third_param
                          ^                                ^                                  ^
                          Here you start with params       Here you are telling the other one is coming 

然后您可以使用:

if(isset($_GET['first_param']) {
  //Get all others or whatever
  $second_param = rawurldecode($_GET['second_param']);

  //Your example
  $srcid = rawurldecode($_GET['srcid']);
  $title = rawurldecode($_GET['title']);
}

如果您可以将代码调整为我在此处创建的示例,它将起作用。为了能够通过URL发送特殊字符,请使用rawurlencode对这些字符进行编码,另一方面,您可以使用rawurldecode对它们进行解码。我在上面做了一个例子。请注意,如果您使用urlencode,则+号将不会通过,您将获得空间。

答案 1 :(得分:0)

#是不安全的url字符,因为它在URL中具有含义。它称为fragment,与链接锚点一起使用。

+是一个安全字符,应该没有理由不起作用。

我建议您尝试以其他方式解析URL。

$url = 'http://localhost/zblog/category/1/2/c++';
$path = parse_url($url, PHP_URL_PATH);
$categories = explode("/", str_replace("/zblog/category/", "", $path));

var_dump($categories);

输出:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(3) "c++"
}