清理 trim URL 和 return 数组 PHP
Sanitize or trim URL and return array in PHP
我想解析一个URL。这是我从教程中获得的代码,所以我假设它是正确的:
public function parseUrl()
{
if(isset($_GET['url']))
{
return $url = explode('/', filter_var(rtrim($_GET['url'], '/'), FILTER_SANITIZE_URL));
}
}
我正在使用 explode
到 return URL 字符串每个部分的数组,如下所示:
Home/index/page
进入
Array ( [0] => home [1] => index [2] => page )
我读过 rtrim
、filter_sanitize_url
和 explode
,但我不知道为什么上面的代码包含所有这三个。
不会自动清理字符串 trim '/' 字符吗?因此,不需要 trim '/',只需要空格...(?)
此外,如果explode分隔符也是'/',如果'/'应该被trim和[=36=删除,它如何仍然识别数组"starts and ends"的位置]?
如果我只省略 rtrim charlist '/' 可以吗?据我所试,它仍然有效。
我很困惑,我可能混淆了概念,不胜感激。
...如果爆炸定界符也是“/”,它如何仍然识别数组 "starts and ends" 的位置,如果“/”应该被两个 trim 删除和 sanitize_url?
Explode 仍然可以使用“/”作为分隔符,因为 FILTER_SANITIZE_URL
does not target '/' as a character to remove, and rtrim
只会删除 url 中作为最后一个字符存在的斜线。 FILTER_SANITIZE_URL
有一个从字符串中删除的完整字符列表,但它实际上针对的是非 ASCII 字符,以及其他不应属于 url 的此类字符。正斜杠字符确实属于 url,以指定路径,因此此处未将其删除。 rtrim
确实会按照指定删除正斜杠字符,但 rtrim
与删除所有匹配字符之间存在差异。 rtrim
完全是 right trim,这意味着查看输入字符串的最右边的字符,如果根据目标字符找到匹配项,它将被删除。因此,explode
仍将按预期工作,因为所有内部 '/' 字符在此过滤后都保持不变。
我想解析一个URL。这是我从教程中获得的代码,所以我假设它是正确的:
public function parseUrl()
{
if(isset($_GET['url']))
{
return $url = explode('/', filter_var(rtrim($_GET['url'], '/'), FILTER_SANITIZE_URL));
}
}
我正在使用 explode
到 return URL 字符串每个部分的数组,如下所示:
Home/index/page
进入
Array ( [0] => home [1] => index [2] => page )
我读过 rtrim
、filter_sanitize_url
和 explode
,但我不知道为什么上面的代码包含所有这三个。
不会自动清理字符串 trim '/' 字符吗?因此,不需要 trim '/',只需要空格...(?)
此外,如果explode分隔符也是'/',如果'/'应该被trim和[=36=删除,它如何仍然识别数组"starts and ends"的位置]?
如果我只省略 rtrim charlist '/' 可以吗?据我所试,它仍然有效。
我很困惑,我可能混淆了概念,不胜感激。
...如果爆炸定界符也是“/”,它如何仍然识别数组 "starts and ends" 的位置,如果“/”应该被两个 trim 删除和 sanitize_url?
Explode 仍然可以使用“/”作为分隔符,因为 FILTER_SANITIZE_URL
does not target '/' as a character to remove, and rtrim
只会删除 url 中作为最后一个字符存在的斜线。 FILTER_SANITIZE_URL
有一个从字符串中删除的完整字符列表,但它实际上针对的是非 ASCII 字符,以及其他不应属于 url 的此类字符。正斜杠字符确实属于 url,以指定路径,因此此处未将其删除。 rtrim
确实会按照指定删除正斜杠字符,但 rtrim
与删除所有匹配字符之间存在差异。 rtrim
完全是 right trim,这意味着查看输入字符串的最右边的字符,如果根据目标字符找到匹配项,它将被删除。因此,explode
仍将按预期工作,因为所有内部 '/' 字符在此过滤后都保持不变。