explode 结合 str_replace对获取的URL处理手记
今天更新我的一个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处理手记的更多相关文章
- ASP php获取文件URL地址等方法
$_SERVER["HTTP_REFERER"] rss中可用 echo next(explode("=", $_SERVER["QUERY_STRI ...
- js获取页面url
设置或获取对象指定的文件名或路径. window.location.pathname例:http://localhost:8086/topic/index?topicId=361alert(windo ...
- 在ASP.NET MVC 中获取当前URL、controller、action
一.URL的获取很简单,ASP.NET通用: [1]获取 完整url (协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString(); [2]获取 虚拟 ...
- Javascript 获取链接(url)参数的方法
有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值.本文给出的就是这个流程的具体实现方法. 当然,我们也可以用正则直接匹配,文章中也给出了一个 ...
- javascript获取当前url
在WEB开发中,许多开发者都比较喜欢使用javascript来获取当前url网址,本文就此为大家总结一下比较常用获取URL的javascript实现代码,以下示例是前面为相应实现方法,后面是获取URL ...
- Asp.Net_Mvc_获取当前Url、Controller、Action
一.URL的获取很简单,ASP.NET通用: [1]获取 完整url (协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString(); [2]获取 虚拟 ...
- 获取与Url链接相关的信息
以下结果的值以此示例为基础:http://www.x2y2.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere j ...
- js、jquery获取当前url中各个参数
首先,先把获取各参数的方式再写一遍,相信大家都耳熟能详,就写几个常用的吧. 以此网址https://i.cnblogs.com/EditPosts.aspx?opt=1为例: 1. var url=w ...
- asp.net MVC中获取当前URL/Controller/Action
一.获取URL(ASP.NET通用): [1]获取完整url(协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString(); [2]获取虚拟目录名+页面 ...
随机推荐
- 那些SQL语句
根据book_id,class_id确定老师uid select user_id from lessons left join book on lessons.lesson_id = book.les ...
- COJN 0486 800401反质数 呵呵呵呵呵
800401反质数 难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1 ...
- 【jQuery】jQuery API 过 一 遍
closest, parents <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...
- 【转】android MSM8974 上DeviceTree简介----不错
原文网址:http://blog.csdn.net/dongwuming/article/details/12784213 简介 主要功能是不在代码中硬编码设备信息,而是用专门的文件来描述.整个系统的 ...
- javascript 判断是否是数组
function isArray(object){ return object && typeof object==='object' && typeof object ...
- android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
定义的getView执行多次的ListView布局: <ListView android:id="@+id/lv_messages" android:layout_width ...
- linux vim 个性化设置(.vimrc)
set sw=4 set ts=4 set et set smarttab set smartindent set lbr set fo+=mB set sm set ...
- yii 分页样式
需求及效果图如下 没什么说的,就是修改分页,修改了CLinks分页的样式 上代码 <?php class GsearchPager extends CBasePager { const CSS_ ...
- Laravel 加载 js css image 文件
写在前面的话: 1.前提是需要使用blade模板引擎 2.css js image 文件夹建在laravel 的 public 目录下面 3.生成的路径默认都是相对路径 A: 加载css文件 (用下面 ...
- RHEL7查看网卡配置命令ip addr show
Validating Network Address Configuration To verify the configuration of the network address, you nee ...