方法一:
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'),"<br>";
echo getExt('http://china.cankaoxiaoxi.com/2014/0629/407885.shtml'),"<br>";
echo getExt('http://tieba.baidu.com/p/3137855685'),"<br>";
echo getExt('http://www.oschina.net/code/list/4/php?lang=php'),"<br>";
echo getExt('http://news.qq.com/a/20140701/013380.htm?ADUIN=1281256312&ADSESSION=1404165481&ADTAG=CLIENT.QQ.5335_.0&ADPUBNO=26361'),"<br>";
結果:
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是否存在“.”來獲取的,如果存在“.”,擴展名應該是以最后一個點之后的一個位置截取的。
