文档章节

3个解析url的php函数

h
 hanbingtel
发布于 2015/06/12 19:12
字数 492
阅读 7
收藏 0
点赞 0
评论 0

通过url进行传值,是php中一个传值的重要手段。所以我们要经常对url里面所带的参数进行解析,如果我们知道了url传递参数名称,例如

/index.php?name=tank&sex=1#top

我们就可以通过$_GET['name'],$_GET['sex']来获得传的数据。但是如果我们不知道这些变量名又怎么办呢?这也是写这篇博文的目的,因为自己老是忘,所以做个标记,下次就不要到处找了。

我们可以通php的变量来获得url和要传的参数字符串

$_SERVER["QUERY_STRING"] name=tank&sex=1

$_SERVER["REQUEST_URI"] /index.php?name=tank&sex=1

javascript也可以获得来源的url,document.referrer;方法有很多

1,利用pathinfo

<?php
$test = pathinfo("http://localhost/index.php");
print_r($test);
?>
结果如下
Array
(
    [dirname] => http://localhost //url的路径
    [basename] => index.php  //完整文件名
    [extension] => php  //文件名后缀
    [filename] => index //文件名
)
2,利用parse_url
<?php
$test = parse_url("http://localhost/index.php?name=tank&sex=1#top");
print_r($test);
?>
结果如下
Array
(
    [scheme] => http //使用什么协议
    [host] => localhost //主机名
    [path] => /index.php //路径
    [query] => name=tank&sex=1 // 所传的参数
    [fragment] => top //后面根的锚点
)
3,利用basename
<?php
$test = basename("http://localhost/index.php?name=tank&sex=1#top");
echo $test;
?>
结果如下
index.php?name=tank&sex=1#top
上面三种方法,我们基本上,就可以得我们所要的东西了。其实还有一种方法就是用正则,也可以很快的得到我们想到的数据。
传递的参数方式有很多,但是主要有这二种,一种是,name=tank&sex=1#top;一种是,name=tank&sex=1。
<?php
preg_match_all("/(\w+=\w+)(#\w+)?/i","http://localhost/index.php?name=tank&sex=1#top",$match);
print_r($match);?>
结果如下
Array
(
    [0] => Array
        (
            [0] => name=tank
            [1] => sex=1#top
        )
    [1] => Array
        (
            [0] => name=tank
            [1] => sex=1
        )
    [2] => Array
        (
            [0] =>
            [1] => #top
        )
)
要的数据都匹配出来了,好长时间搞正则了,手都有点生了。上面正则中的规则不是死的,规则是根据url来推测的。


© 著作权归作者所有

共有 人打赏支持
h
粉丝 0
博文 7
码字总数 1992
作品 0
济南
php解析url和路径函数

解析url: array parse_url ( string $url ) 本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。 本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的...

thinkgood ⋅ 2013/08/17 ⋅ 0

php抓取页面的几种方式

php抓取页面的几种方式 在做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求访问url地址, 然后得到html源代码或者xml数据...

真座山雕 ⋅ 2012/11/09 ⋅ 0

PHP+MySQL分页原理

1、SQL语句中的limit用法 SELECT * FROM table …… limit 开始位置 , 操作条数 (开始位置从0开始) SELECT * FROM table …… limit 0 , 20 (取前面20条) SELECT * FROM table …… li...

方赛 ⋅ 2014/07/23 ⋅ 0

php parse_url()函数

parseurl — 解析 URL,返回其组成部分。 说明 array parseurl ( string $url ) 本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。 本函数不是用来验证给定 URL 的...

freedonn ⋅ 2014/03/18 ⋅ 0

thinkphp url调度器解析原理

1.什么pathinfo? 举个例子: http://www.test.com/index.php/type/news/id/4?name=chen&height=33 1. index.php 是服务器上真实存在的文件名 (在apache没有开启重写这个文件的情况下) 2. ty...

share_good ⋅ 2014/02/19 ⋅ 2

PHP中URL美化心得分享

很早之前跟大家讨论过php的url美化, 比如实现oschina这种超美的url路径. 目标: 在程序中通过设定 $url_router 来实现常规url和美化url的切换, 例如: 新闻页: http://www.abc.com/news.php?i...

指点江山 ⋅ 2011/09/02 ⋅ 6

再来二十一段救命的PHP代码

PHP可阅读随机字符串 此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。 /** *@length - length of random string (must be a multiple of 2) **/ functio...

零点钟 ⋅ 2011/10/28 ⋅ 1

再来二十一段救命的PHP代码

PHP可阅读随机字符串 此代码将创建一个可阅读的字符串,使其更接近词典中的单词,实用且具有密码验证功能。 /** *@length - length of random string (must be a multiple of 2) **/ functio...

遇幽 ⋅ 2011/10/23 ⋅ 0

b2Core 1.6.3 发布,PHP的MVC框架

更新内容 1. 将分页等函数移出核心文件 2. 解决在 SAE 和 部分 php5 环境下 url 解析错误的问题 3. 修正一个 Notice 提示 4. 官方网站上线 http://b2core.b24.cn b2Core: 简单、快速、灵活的...

BatM3 ⋅ 2012/05/03 ⋅ 0

php parse_url 函数

parse_url : 解析URL并返回其组成部分 描述 混合parseurl,此功能解析一个URL并返回一个关联数组含有任何的各个组成部分的URL ,也存在着分歧。这个功能并不意味着验证给定网址,它不仅打破了...

xdl丶辉 ⋅ 2016/08/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 56分钟前 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 今天 ⋅ 7

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部