文章摘要
文章讨论了在PHP中如何处理URL中的特殊字符(如#、&、amp等)无法直接传递的问题。当通过$_GET获取URL时,这些特殊字符会被过滤或丢失,导致无法完整获取所需数据。为了解决这一问题,文章提出了一种变通方法:通过读取浏览器的请求地址域(REQUEST_URI)来获取完整的URL。通过使用`strstr`函数匹配“url=”这一特定模式,可以提取出完整的URL数据,从而避免了通过$_GET获取时的限制。这种方法确保了在处理包含特殊字符的URL时,依然能够正确获取完整的数据。
有些符号在URL中是不能直接传递的,无法传入PHP处理,比如#&等符号,通过$_GET是获取不到的,比如一个域名https://localhost/url.php?url=yangyufei+eating&drinking,只能获取到yangyufei eating。
这个时候只能变通一下,想想用户访问这个地址,他的浏览器地址栏是不是就有这个链接的完整形式,我们只要读取到访客的地址栏里的这个链接,然后进行处理不就能获取到完整的数据了吗?
代码如下:
<?php
$url = $_SERVER[“REQUEST_URI”];
$searchString = “url=”; // 定义要查询的字符为url=
$url = strstr($url,$searchString);
$length = strlen($searchString);
$url = substr($url, $length);
echo $url;
?>
© 版权声明
文章版权归作者所有,未经允许请勿转载。


