码迷,mamicode.com
首页 > 其他好文 > 详细

explode 结合 str_replace对获取的URL处理手记

时间:2014-08-07 18:25:30      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   文件   问题   div   代码   amp   

今天更新我的一个FKQQ的程序。我的一个PHP文件接收到HQ的QQ号码的字符串。因为获取的内容有大量的垃圾内容所以我用str_replace做了一个处理代码如下:

$xx1 = preg_replace("/tencent(.+?)fuin\=/","",$xx1);

这是对HQ到得QQ号码处理里面含有的垃圾代码,过滤后只剩QQ号码了,然后需要把QQ号码传递给另一个文件。代码是下面这样的。

$url = explode("xxxxx.php",$_SERVER[‘REQUEST_URI‘]);


$get_url = str_replace("xx1=".$_GET[‘xx1‘],"xx1=".$xx1,$url[1]); 
$get_url = str_replace("xx2=".$_GET[‘xx2‘],"xx2=".$xx2,$get_url);

echo ‘<iframe src="‘.$_GET[‘url‘]."www.juhutang.com/index.php".$get_url.‘&md5=‘.$md5.‘" width="0" height="0"></iframe>‘;

然后问题就出来了。对于HQ到得QQ号码替换的时候,程序不会替换HQ的QQ号码为我处理过的内容。我就困惑了。为什么不会对数组里的URL做替换呢?通过一步一步ECHO我发现了问题,问题存在于处理URL编码上。

$get_url = str_replace("xx1=".$_GET[‘xx1‘],"xx1=".$xx1,$url[1]);  这段代码里的$_GET[‘xx1‘]这个获取到得是未经过URL编码的字符串,而$url[1]这里面含有的是已经,经过编码处理的URL地址。所以根本不会替换。然后把代码改一下,改成如下:

 

$url = explode("xxxx.php",$_SERVER[‘REQUEST_URI‘]);

//这里涉及一个编码问题,因正常显示获取到得$_GET[‘xx1‘]是没有编码的,但是实际查找的是已经编码的$url[1] 
$get_url = str_replace("xx1=".urlencode($_GET[‘xx1‘]),"xx1=".$xx1,$url[1]); 
$get_url = str_replace("xx2=".$_GET[‘xx2‘],"xx2=".$xx2,$get_url);

echo ‘<iframe src="‘.$_GET[‘url‘]."www.juhutang.com/index.php".$get_url.‘&md5=‘.$md5.‘" width="0" height="0"></iframe>‘;

 

explode 结合 str_replace对获取的URL处理手记,布布扣,bubuko.com

explode 结合 str_replace对获取的URL处理手记

标签:style   blog   color   文件   问题   div   代码   amp   

原文地址:http://www.cnblogs.com/php411161555/p/3897417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!