方法一:
function getExt($url){
$urlinfo = parse_url($url);
$file = basename($urlinfo[‘path‘]);
if(strpos($file,‘.‘) !== false)
{
$ext = explode(‘.‘,$file);
return $ext[count($ext)-1];
}
return ‘no extension‘;
}
测试的url:
echo getExt(‘http://www.sina.com.cn/abc/de/fg.php?id=1‘),"
";
echo getExt(‘http://china.cankaoxiaoxi.com/2014/0629/407885.shtml‘),"
";
echo getExt(‘http://tieba.baidu.com/p/3137855685‘),"
";
echo getExt(‘http://www.oschina.net/code/list/4/php?lang=php‘),"
";
echo getExt(‘http://news.qq.com/a/20140701/013380.htm?ADUIN=1281256312&ADSESSION=1404165481&ADTAG=CLIENT.QQ.5335_.0&ADPUBNO=26361‘),"
";
结果:
php
shtml
no extension
no extension
htm
方法二:
function getExt2($url){
$urlinfo = pathinfo($url);
if(isset($urlinfo[‘extension‘]))
{
if(strpos($urlinfo[‘extension‘],‘?‘) !== false)
return explode(‘?‘,$urlinfo[‘extension‘])[0];
else
return $urlinfo[‘extension‘];
}
return ‘no extension‘;
}
测试url同上
结果:
php
shtml
no extension
no extension
0&ADPUBNO=26361
最后一个url的扩展名获取有问题,我的理解是pathinfo($url)的extension是根据url是否存在“.”来获取的,如果存在“.”,扩展名应该是以最后一个点之后的一个位置截取的。
原文:http://www.cnblogs.com/dazzler/p/3817677.html