PHP 无法显示
在php中有个解析url的函数,parse_url。
在使用时,发现对于某些url,无法获取path路径
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?php
function url_normalize($url)
{
$url_array = parse_url($url);
// avoid null url
if (isset($url_array["scheme"]))
{
// trim last \
$path="";
if (isset($url_array["path"]))
{
$path=$url_array["path"];
}
$nurl = sprintf("%s://%s%s", $url_array["scheme"],
$url_array["host"], rtrim($path, "/"));
printf("%s\n%s\t%s\t%s\n", $url, $nurl, $url_array["host"], $path);
}
}
foreach($argv as $key => $value)
{
if (strrchr($value, ".php") == ".php")
{
continue;
}
url_normalize($value);
}
?>
|
代码示例如上,调用
1
|
php url_normalize.php 'http://wap1.cclongxb.com/szqpz/21.html#sgjj2SJ-b?2szpzbwdmc-0009#7'
|
得到的path为空,php的版本为5.3.3
感觉如果有#和?字符存在的话,会有问题,我不太想深究原因,因为php并非我主要的开发语言。
于是转换到python中去,相同的代码如下
1
2
3
4
5
6
7
|
import urlparse
def url_normalize(url):
o=urlparse.urlparse(url);
nurl="%s://%s%s" %(o.scheme, o.netloc, o.path)
return nurl;
import sys
print url_normalize(sys.argv[1])
|
得到不含query和锚#的url
http://wap1.cclongxb.com/szqpz/21.html
fix掉,被python折磨的编码问题,不复存在的感觉真好。