php - 在字符串

时间:2015-10-27 20:36:55

标签: php

如何在字符串之前和之后找到第一次出现双引号"。当然,我使用preg_match_all()查找了所有.jpg个扩展名,我想在此扩展名之后和之前找到"的第一个匹配项。我过了strpos()substr(),但我做不到。这样做的最快方法是什么?!

例如:

<div data-img="/path/to/the/file.jpg"></div>

或者

<img src="/path/to/the/file.jpg"/>

我只想在"之前和之后获得.jpg之前和之后的第一次出现,然后获取双引号之间的路径!

2 个答案:

答案 0 :(得分:1)

这是你要找的,第一个'''在'.jpg之前'和之后的那个?

$path   = array();
$subst  = strpos( $s, '.jpg' );
while ( $subst !== false ) {
    $before = strrpos( $s, '"', -$subst ) + 1;
    $after  = strpos( $s, '"', $subst );
    $path[] = substr( $s, $before, $after - $before );
    $subst  = strpos( $s, '.jpg', $after + 1 );
}

编辑:修正了代码,现在它实际上会在'.jpg'之前和之后找到'''的位置,如果这是您正在寻找的。

Edit2:添加了如何在引号之间获取文件名。

编辑3:看到你的答案后,我终于理解了这个问题!这就是字符串比较的方法!

答案 1 :(得分:1)

非常感谢 Barmar 。这将有助于那些可能有同样问题的人:

preg_match_all('/"[^"]*\.jpg"/', $string, $matches);

print_r($matches);