php 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
封面图
•
2025-11-01
•
PHP
186
0
0
0
在 PHP 中,从一个标准 URL 中提取文件的扩展名(即文件名后缀),可以通过以下方式实现。这个函数尽可能高效,并且处理常见的 URL 格式。 ### ✅ 示例 URL: - `https://example.com/path/to/file.jpg` - `http://example.com/image.png?param=value` - `https://example.com/file.tar.gz` - `https://example.com/without_extension` --- ### ✅ PHP 函数:`get_file_extension_from_url` ```php function get_file_extension_from_url($url) { // 1. 解析 URL,获取路径部分 $parsed = parse_url($url); // 2. 如果没有 path,则返回 false 或空字符串 if (!isset($parsed['path'])) { return ''; } // 3. 获取文件名(最后一个路径部分) $path_parts = explode('/', $parsed['path']); $filename = end($path_parts); // 4. 如果没有文件名,返回 false 或空字符串 if (empty($filename)) { return ''; } // 5. 获取扩展名 $ext = pathinfo($filename, PATHINFO_EXTENSION); // 6. 返回扩展名(小写) return strtolower($ext); } ``` --- ### 📌 使用示例: ```php echo get_file_extension_from_url('https://example.com/path/to/file.jpg'); // 输出: jpg echo get_file_extension_from_url('http://example.com/image.png?param=value'); // 输出: png echo get_file_extension_from_url('https://example.com/file.tar.gz'); // 输出: gz echo get_file_extension_from_url('https://example.com/without_extension'); // 输出: (空字符串) ``` --- ### 🔍 说明: - `parse_url()`:解析 URL 的各个部分。 - `explode('/')`:将路径拆分为数组,取最后一个元素作为文件名。 - `pathinfo()`:获取文件扩展名。 - `strtolower()`:统一返回小写扩展名,便于后续处理。 --- ### ⚠️ 注意事项: - 如果 URL 中没有文件名(如 `https://example.com/`),函数会返回空字符串。 - 如果 URL 是 `https://example.com/file`,则不会有任何扩展名。 --- 如果你需要更严格的验证或支持更多边缘情况(如查询参数中包含点号等),可以进一步优化此函数。需要的话我可以继续帮你完善。
上一篇:
php简单写一个上传文件程序,要求同时上传文件数量可以人为控制
下一篇:
比较基础的php面试题及答案-基础题部分
标题录入,一次不能超过6条
留言
评论