如何在php中删除url中的%20

时间:2014-04-23 06:12:23

标签: php

当前代码:

<?php

include('conn.php');
$sql = mysql_query("select min(news_id) 'min' from news");
$res = mysql_fetch_array($sql);
$qry=mysql_query("select * from news order by date(post_date) desc,priority desc ");
while($row1=mysql_fetch_array($qry)) {
    <p class='news_title'><a href='newsdetail.php?id=".urldecode($row1['news_heading'])."'>{$row1['news_heading']}</a></p>
}

?>

当我将标题传递到下一页时......

下一页的网址显示如下

  

newsdetail.php?ID =在%20front%20%20of%第二十条%20houses

我需要这样显示:

  

newsdetail.php?id =在房子前面

3 个答案:

答案 0 :(得分:3)

您不能在网址中包含空格或特殊字符。 如果您尝试将它们放入,则浏览器会将%20放入空格。

对于干净的网址,请用hypen( - )

替换空格或特殊字符
function cleanURL($textURL) {
  $URL = strtolower(preg_replace( array('/[^a-z0-9\- ]/i', '/[ \-]+/'), array('', '-'), $textURL));
            return $URL;
     }



while($row1=mysql_fetch_array($qry)) {
        <p class='news_title'><a href='newsdetail.php?id=".cleanURL($row1['news_heading'])."'>{$row1['news_heading']}</a></p>
    }

输出

newsdetail.php?ID =在前方的最屋

这么想,这会对你有所帮助

答案 1 :(得分:2)

您不能在网址中包含原始空格。如果您尝试将它们放入,则浏览器将纠错并为您转义它们。

答案 2 :(得分:1)

您可以使用urldecode转换网址字符串。

http://www.php.net/manual/en/function.urldecode.php

echo urldecode('newsdetail.php?id=In%20front%20%20of%20the%20houses');

将产生:

newsdetail.php?id=In front of the houses