方法一:
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是否存在“.”来获取的,如果存在“.”,扩展名应该是以最后一个点之后的一个位置截取的。