Url以特定文件格式结束

时间:2016-08-07 22:39:23

标签: php

大家好我想要一种方法来回应一些东西,如果网址的结尾是mp4或者txt或者像这样的任何其他文件格式

<?php
    $url = $_SERVER['REQUEST_URI'];
    if (substr($url,-9)=="php"){
        echo "the url end with php";
    } else {
        echo "the url doesn't end with php";
    }
?>

但它不起作用请一些帮助

2 个答案:

答案 0 :(得分:2)

签出PHP核心中的pathinfo()以及parse_url():http://php.net/parse_urlhttp://php.net/manual/en/function.pathinfo.php

将它与$ _SERVER ['REQUEST_URI']和PATHINFO_EXTENSION标志一起使用。这应该有所帮助。然后你可以在switch语句中使用它:

$url_parts = parse_url($_SERVER['REQUEST_URI']);
$extension = pathinfo($url_parts['path'], PATHINFO_EXTENSION);

switch ($extension) {
 case "mp4":
   //do something for mp4.
   break;
 case "wav":
   //do something for wav.
   break;
}

这适用于URL上也有参数的情况。 http://website.com/file.mp4?param=var仍然是mp4。在这种情况下,只使用pathinfo()会给你“mp4?param = var”。

我没有运行此代码,只是我希望它能够运行。您可能还想在扩展名之前使用strtolower(),以防它在地址栏中大写。

答案 1 :(得分:0)

你可以这样使用,

$url = "http://example.com/zip.php";
$path_parts = pathinfo($url);    
echo $path_parts['extension'];