如何使用PHP从url替换%20?

时间:2017-03-31 05:43:58

标签: php jquery

代码:

 <?php
    $query = "select * from latest_news limit 0,10";
    $fet = mysqli_query($link,$query);
    while ($fetch = mysqli_fetch_array($fet)) 
    {
 ?>
 <p id="news-h3"><?php echo $fetch['news_title']; ?>...<a href="news-details.php?news_tags=<?php echo $fetch['news_tags']; ?>" style="color:red;">[Read More]</a></p>
 <?php
     }
 ?>

点击链接即

<a href="news-details.php?news_tags=<?php echo $fetch['news_tags']; ?>" style="color:red;">[Read More]</a>

显示

best%20engineering%20college%20in%20India

在这里,我想用url替换%20和( - ),得到像

这样的结果
best-engineering-college-in-India

如何解决这个问题,请帮忙。

谢谢

3 个答案:

答案 0 :(得分:0)

您应该在{}使用str_replace()

echo str_replace('%20', '-', $input); // best-engineering-college-in-India

答案 1 :(得分:0)

基本上你想要解码URL。您可以使用

解码它
echo utf8_decode(urldecode($input));

答案 2 :(得分:0)

1.你可以使用这个内置的php函数。你只想用另一个替换一段字符串。

$new_url = str_replace('%20', '-', $url);

了解更多信息

http://fr2.php.net/str_replace

2.使用urlencode进行编码。解码将自动发生, 如果你想删除总共20%,那么使用这段代码。

 $url = "one%20%26%20two";
 $a = urldecode($url); // -> "one & two"

在加载时假设您的页面然后像这样创建您的网址

 $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$base_url = $protocol . $_SERVER["SERVER_NAME"];

然后使用它

urldecode($base_url)

如果你想在url中使用它,那么

 echo '<a href="?mycgi?foo=', urlencode($userinput), '">';

了解更多信息

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