PHP正则表达式提取URL中文件名的第一部分

标签 php regex extract filenames

这个问题在这里已经有了答案:




8 年前关闭。




Possible Duplicate:
How can I convert ereg expressions to preg in PHP?



我正在编写一个 PHP 脚本。

我有一个表单的 URL:

http://ecx.images-amazon.com/images/I/5104Xl51zFL._SL175_.jpg

我只想获取文件名的第一部分 5104Xl51zFL .

我对正则表达式很陌生,但到目前为止我有:
.*images\/I\/(.+?)(\.[^.]*|$)

根据 regextester.com 应该可以工作,但不能在我的 PHP 中使用。

如果它不是最佳解决方案,则不必是正则表达式。

如果这是相关的,这是我的 PHP(仍在调试):
function linkExtractor($html)
{
    if(preg_match_all('/<img ([^>]* )?src=[\"\']([^\"\']*\._SL175_\.jpe?g)[\"\']/Ui', $html, $matches, PREG_SET_ORDER)){
        foreach ($matches as $match) {
            $url = $match[2];
            echo "\n\n" .$url . "\nfile name: ";
            if(preg_match_all('.*images\/I\/(.+?)(\.[^.]*|$)', $url, $matched, PREG_SET_ORDER)) {
                foreach($matched as $name) {
                    print_r($matched);
                }
            }
        }
    }
}

最佳答案

$url = 'http://ecx.images-amazon.com/images/I/5104Xl51zFL._SL175_.jpg';
$path = parse_url($url, PHP_URL_PATH);
$filename = basename($path);
$partOne = strtok($filename, '.');

关于PHP正则表达式提取URL中文件名的第一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536642/

相关文章:

javascript - 按两次提交后,Ajax 就可以工作了

php - 在 CakePHP 中,是否可以全局设置传递给 Form helper create 方法的选项?

c++ - 使用 LibTar 提取文件

c# - 通过 DotNetZip 库以编程方式提取 ZIP 文件?

python - 在 Python 中从包含特殊字符的 CSV 单元格中提取字符串

cron - PHP - 最后一次通话

php - 多个mysqli对象相互覆盖

ruby - 将 %uXXXX 替换为 Ruby 中相应的 Unicode 代码点

php - 正则表达式与 PDO Mysql

java - 用于查找以下字符串的 Eclipse 正则表达式