当前位置:首页 » 编程语言 » php解析url

php解析url

发布时间: 2023-04-06 03:38:39

1. php中使用parse_url()对网址进行解析的实现代码(parse_url详解)

PHP
解析
URL函数:
parse_url详解
parse_url

解析
URL,返回其组成部分
说明
array
parse_url
(
string
$url
)
本函数解析一个
URL
并返回一个关联数组,包含在
URL
中出现的各种组成部分。
本函数不是用来验证给定
URL
的合法性的,只是将其分解为下面列出的部分。不完整的
URL
也被接受,parse_url()
会尝试尽量正确地将其解析。
参数
url
要解析的
URL
返回值
对严重不合格的
URL,parse_url()
可能会返回
FALSE
并发出
E_WARNING。否则会返回一个关联数组,其组成部分为(至少有一个):
scheme


http
host
port
user
pass
path
query

在问号
?
之后
fragment

在散列符号
#
之后
范例
parse_url()
例子
复制代码
代码如下:
<?php
$url
=
'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
?>
以上例程会输出:
Array
(
[scheme]
=>
http
[host]
=>
hostname
[user]
=>
username
[pass]
=>
password
[path]
=>
/path
[query]
=>
arg=value
[fragment]
=>
anchor
)
常常我们会传送一大串网址,然后要解析的话,只能不断地去切token来解析。但是在php中,一定要学会使用前人所写过的函式,这样开发速度才会快别人一截。当然,要解析网址的话,就得去找相关的指令,而今天要介绍的,就是php中的parse_url这个函式。
这个函式主要是用来解析网址,而首先先看一下这个函式原型,其官方描述如下:
mixed
parse_url
(
string
$url
[,
int
$component=
-1
]
)
而php官方举了一个例子,而我将他扩充如下,以方便讲解。
复制代码
代码如下:
<?php
$url
=
'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor';
print_r(parse_url($url));
?>
首先,先看一下这个程式的输出结果
Array
(
[scheme]
=>
http
[host]
=>
hostname
[user]
=>
username
[pass]
=>
password
[path]
=>
/path
[query]
=>
arg1=value1&arg2=value2
[fragment]
=>
anchor
)
其中,scheme是指他走的路线,而host则是站台网址,user则是使用者名称,pass则是密码,path则是路径,query则是参数,fragment则是锚点。
而在“$component”的部份,则是有以下的参数可供传递。
PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT
而这几个参数则分别代表了Array中的scheme、host、user、pass、path、query和fragment。
同样,举例来说,如果使用PHP_URL_PATH和PHP_URL_QUERY来说,以下为他的示范。
复制代码
代码如下:
<?php
$url
=
'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor';
echo
nl2br(parse_url($url,
PHP_URL_PATH)."\n");
echo
nl2br(parse_url($url,
PHP_URL_QUERY)."\n");
?>
而输出结果将如下:
/path
arg1=value1&arg2=value2

2. 如何通过php获取提交页面的URL

在PHP的开发中我们经常会通过网址URL向另一个网页传递参数的问题。在这个过程中我们首先需要获取到当前页面的URL,然后将URL中各个参数的值保存到变量中。整个过程较为简单,主要涉及到$_SERVER的用法。

1、$_server['http_host'],作用:获取网址域名,如(www.5ibobo.com,这是波波的一个博客,暂且做例子吧)。

2、$_SERVER["PHP_SELF"],作用:获取网页地址,如(/code/445.html)。

3、$_SERVER["QUERY_STRING"],作用:获取网址URL参数,待会我们会在实例中用到。

4、$_SERVER["HTTP_REFERER"],作用:获取用户的代理。

3. 如何通过php获取提交页面的URL

在PHP的开发中我们经常会通过网址URL向另一个网页传递参数的问题。在这个过程中我们首先需要获取到当前页面的URL,然后将URL中各个参数的值保存到变量中。整个过程较为简单,主要涉及到$_SERVER的用法。

1、$_server['http_host'],作用:获取网址域名,如(www.5ibobo.com,这是波波的一个博客,暂且做例子吧)。

2、$_SERVER["PHP_SELF"],作用:获取网页地址,如(/code/445.html)。

3、$_SERVER["QUERY_STRING"],作用:获取网址URL参数,待会我们会在实例中用到。

4、$_SERVER["HTTP_REFERER"],作用:获取用户的代理。

4. 100分求PHP获取图中链接URL中的ID数字值。

对于 url ,可以使用 parse_url 函数来解析获取相应的部分,比如 host、path、query 等。按照你题目的要求,需要获取的是 query 部分,这部分又可以使用 parse_str 函数来解析,然后获取需要的参数,比如你这里的 id。


这里有一个函数,用于获取一个链接的URL的query部分,并解析成数组,可以很方便的通过键名来获取参数值。


//解析url,数组的形式返回url的query部分
functiongetQuery($url='')
{
$url=trim($url);
if($url=='')
returnfalse;
//解析url,获取query部分,它是一个字符串
$query=parse_url($url,信则PHP_URL_QUERY);
if($query===null)
returnnull;
//解析query部分,将会保存到一个数组
parse_str($query,$params);
return$params;
}

//使橡瞎用举例
$url='...?id=24498704247';//你要解析的那个url
$paras=getQuery($url);//array('id'=>24498704247)
echo梁坦空$paras['id'];//24498704247

5. php打开URL的几种方法

PHP中打开URL地址的几种方法总结,这里的函数主要用于小偷采集等函数。
1:用file_get_contents
以get方式获取内容
复制代码代码如下:

<?php
$url='http://www..com/';

$html=file_get_contents($url);
//print_r($http_response_header);

ec($html);
printhr();
printarr($http_response_header);

printhr();
?>

示例代码2:用fopen打开url,
以get方式获取内容
复制代码代码如下:

<?
$fp=fopen($url,'r');

printarr(stream_get_meta_data($fp));
printhr();
while(!feof($fp)){

$result.=fgets($fp,1024);
}
echo"urlbody:$result";

printhr();
fclose($fp);
?>


示例代码3:用file_get_contents函数,以post方式获取url
复制代码代码如下:

<?php
$data=array('foo'=>
'bar');
$data=http_build_query($data);
$opts=array(
'http'
=>array(
'method'=>'POST',
'header'=>"Content-type:
application/x-www-form-urlencoded".
"Content-Length:".strlen($data).
"",
'content'=>$data
),
);
$context=
stream_context_create($opts);
$html=
file_get_contents('http://localhost/e/admin/test.html',false,$context);

echo$html;
?>


示例代码4:用fsockopen函数打开url,以get方式获取完整的数据,包括header和body
复制代码代码如下:

<?
functionget_url
($url,$cookie=false){
$url=parse_url($url);
$query=
$url[path]."?".$url[query];
ec("Query:".$query);
$fp=fsockopen(
$url[host],$url[port]?$url[port]:80,$errno,$errstr,30);
if(!$fp){

returnfalse;
}else{
$request="GET$queryHTTP/1.1";

$request.="Host:$url[host]";
$request.="Connection:Close";

if($cookie)$request.="Cookie:$cookie ";
$request.="";

fwrite($fp,$request);
while(!@feof($fp)){
$result.=@fgets($fp,
1024);
}
fclose($fp);
return$result;
}
}

//获取url的html部分,去掉header
functionGetUrlHTML($url,$cookie=false){

$rowdata=get_url($url,$cookie);
if($rowdata)
{
$body=
stristr($rowdata,"");
$body=substr($body,4,strlen($body));
return$body;

}
returnfalse;
}

?>

6. php获取url参数

1、在当前网页echo出变量$_SERVER['HTTP_HOST']即可获取域名或主机地址。

7. php,如何把url字符串里面的参数解析出来

//url中传递的参数,get形式$userid = @$_GET['userid'];//你也可以打印出所有的Get参数, 可以更明白其中的奥妙print_r($_GET); //如果是表单/post提交,则用$_POST , 用法和$_GET类似

8. thinkphp 取得url参数

一般情况下URL中的参数就是通过GET方法获取,但是由于PATHINFO的特殊性,URL地址最终需要被解析才能转换成GET参数,ThinkPHP对URL是按照一定的规则进行解析的,除非你使用了URL路由规则,如果你对URL做了特别的定制,但是又不想使用URL路由,那么可以使用框架提供的URL参数获取方法直接获取,
例如,我们访问一个如下的网址:
http://serverName/News/archive/2012/01/15
正常情况下,只有通过路由才能解析后面的2012/01/15,现在我们可以直接在News控制器的archive操作方法里面直接使用:
Class NewsAction extends Action {
Public function archive(){
$year = $_GET["_URL_"][2];
$month = $_GET["_URL_"][3];
$day = $_GET["_URL_"][4];
}
}
3.0版开始支持URL地址中的PATH_INFO方式的URL的参数获取方式,需要配置
VAR_URL_PARAMS参数,默认值是:
'VAR_URL_PARAMS' => '_URL_', // PATHINFO URL参数变量

9. PHP 怎么解析远程URL 传过来json ,在前端显示出来

比如:
$jsonData = '{"谨轮念ErrorCode":0,"Success":true,"ErrMessage":"","HasData":true,"Records":[{"Time":"2014-08-19 07:47:10","Location":"广东省河源市G25黄田至义合高祥困速路段","Reason":"驾驶中型以上载客载货汽车、危险物品运输车辆以外的其他机动车行驶超过规定时速10%未达20%的","count"桐销:"150","status":"0","department":"河源市公安局交通警察支队高速公路二大队","Degree":"3","Code":"1352A","Archive":"4416307900262638","Telephone":null,"Excutelocation":null,"Excutedepartment":null,"Category":"","Latefine":"0","Punishmentaccording":null,"Illegalentry":null,"Locationid":4416,"LocationName":"广东河源","DataSourceID":9992,"RecordType":"实时数据","Poundage":"25","CanProcess":"1","UniqueCode":"","SecondaryUniqueCode":"1993287","DegreePoundage":"0","Other":"","CanprocessMsg":"","CooperPoundge":"25","ActivePoundge":"-1","CanUsePackage":"0"}],"ResultType":"实时数据","LastSearchTime":"","PackageName":"","RemainCount":0,"Other":""}
';
$data = json_decode($jsonData,TRUE);
var_mp($data);
这个$data 是一个数组,输出数组就简单了(foreach)

10. php获取url参数程序代码总结

parse_url函数
我们先来了解一下parse_url函数,官方解决
说明
mixed
parse_url
(
string
$url
[,
int
$component
=
-1
]
)
本函数解析一个
URL
并返回一个关联数组,包含在
URL
中出现的各种组成部分。
本函数不是用来验证给定
URL
的合法性的,只是将其分解为下面列出的部分。不完整的
URL
也被接受,
parse_url()
会尝试尽量正确地将其解析。
要解析的
URL。无效字符将使用
_
来替换。
实例
代码如下

$url
=
"http://www.45it.net/welcome/";
$parts
=
parse_url($url);
print_r($parts);
array
(
[scheme]
=>
http
[host]
=>
www.45it.net
[path]
=>
/welcome/
)
也可以自己去写一个算法!如下
代码如下

function
getParams()
{
$url
=
'/index.php?_p=index&_a=show&x=12&y=23';
$refer_url
=
parse_url($url);
$params
=
$refer_url['query'];
$arr
=
array();
if(!empty($params))
{
$paramsArr
=
explode('&',$params);
foreach($paramsArr
as
$k=>$v)
{
$a
=
explode('=',$v);
$arr[$a[0]]
=
$a[1];
}
}
return
$arr;
}
调用方法
代码如下

$arr
=
getParams();
print_r($arr);
结果
结果:
Array
(
[_p]
=>
index
[_a]
=>
show
[x]
=>
12
[y]
=>
23
)

热点内容
家乡编程创 发布:2024-11-02 10:11:32 浏览:282
ipad和安卓板玩游戏哪个好 发布:2024-11-02 10:02:37 浏览:804
邮箱密码怎么查看 发布:2024-11-02 09:59:46 浏览:723
wand应用怎么安卓下载 发布:2024-11-02 09:57:46 浏览:80
为什么手机银行密码是8位 发布:2024-11-02 09:54:19 浏览:459
win10搭建一个本地服务器 发布:2024-11-02 09:53:36 浏览:348
git搭建本地服务器windows 发布:2024-11-02 09:49:23 浏览:783
跳过地址的代理服务器 发布:2024-11-02 09:30:03 浏览:388
Linux配置yum源是什么意思 发布:2024-11-02 09:18:13 浏览:526
光遇安卓如何拍出高质量视频 发布:2024-11-02 09:17:36 浏览:747