PHP 提取输入文件的扩展名

题目如下:

写一个函数,尽可能高效地从一个标准URL里取出文件的扩展名。
例如: http://www.test.com.cn/abc/de/fg.inc.php?id=1需要取出php或.php

关于这点类似的情况,其实在PHP 计算两个文件的相对路径已经有集成了,不过提取出来而已。

演示

完整源码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Extension_name</title>
</head>
<body>
    <form action="extension_name.php" method="post">
        <input type="text" placeholder="请输入URL" name="str">
        <input type="submit" value="提交">
    </form>
    <?php
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
            $str = $_POST['str'];
            extension($str);

        }

        function extension($str) {
            $problem = FALSE;
            if ( empty($str) ) {
                $problem = TRUE;
                echo '请输入URL';
            } else {
                $str = strrchr($str, '.');

                if ($str == '') {
                    $problem = TRUE;
                    echo '请输入完整的文件URL';
                }

                if (strpos($str, '/') || strpos($str, '\\')) {
                    $problem = TRUE;
                    echo '请输入正确的URL';
                }
            }

            if (!$problem) {
                if (strpos($str, '?') !== FALSE) {
                    $str = strstr($str, '?', TRUE);
                }

                $str = substr($str, 1);
                echo $str;
            }
        }
    ?>
</body>
</html>

这里我们用strpos($str, '/') || strpos($str, '\\')来避免用户输入错误网址的情况。
为了避免问号,用strstr()反向截取,最后用这个函数把.截掉就行了

关于字符串函数这里有点总结http://codesky.me/archives/php-function-string.wind

植入部分

如果您觉得文章不错,可以通过赞助支持我。

如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。

标签: 成品, 源码, 题目

添加新评论