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
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。