我正在创建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>
答案 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++"
}