方法一:
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是否存在“.”來獲取的,如果存在“.”,擴展名應該是以最后一個點之后的一個位置截取的。