繁体   English   中英

如何使用php从URL替换%20?

[英]How can I replace %20 with - from url using php?

码:

 <?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

我该如何解决此问题,请帮忙。

谢谢

您应该在这里使用str_replace()

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

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

echo utf8_decode(urldecode($input));

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM