我正在尝试从网址中删除特殊字符Iterable
我尝试了很多解决方案,比如string_replace等,但没有成功。
我不知道我的代码有什么问题:
%
有人可以帮忙吗?
答案 0 :(得分:2)
str_replace
应该做到这一点
以下代码将查找“%”的所有实例,并将其替换为空白字符串,从而有效地将其从字符串中删除。
trim
将从字符串的开头和结尾删除字符。因此,如果示例位于字符串的开头或结尾,则您的示例将仅删除%
。
<?php
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'pages') !== false) {
$url = str_replace("%", "", $url);
}
?>
要考虑的一件事是,如果您在网址中有空格,那么您最终会在网址中留下20
。
这取决于URL的编码方式以及某些字符的编码方式
See this link了解更多信息。 “代码点(十六进制)”列是您查看编码版本所需的内容。空格字符是一个常见示例,编码为%20
因此,删除%
会使20
离开,这可能会导致网址出现问题。
根据上述说明,如果您要删除空格和任何数字,则可以通过以下方式使用RegEx:
$url = preg_replace("/%\d+", "", $url);
答案 1 :(得分:1)
根据str_replace函数的此文档,您可以使用
更改代码<?php
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'pages') !== false) {
$url = str_replace("%", "", $url);
}
?>
答案 2 :(得分:0)
trim() - 从字符串的开头和结尾去掉空格(或其他字符)
此函数返回一个字符串,其中从str的开头和结尾剥去了空格。如果没有第二个参数,trim()将删除这些字符:
FOR网址
您可以使用urldecode转换网址字符串。
echo urldecode($your_url);
或使用此功能清理您的网址:
function PerfectURL($your_url) {
$perfect_url = strtolower(preg_replace( array('/[^a-z0-9\- ]/i', '/[ \-]+/'), array('', '-'), $your_url));
return $perfect_url;
}
或仅%
''
str_replace("%", "", $your_url);