找到字符串中的特定位置并从中获取数据

时间:2016-12-08 10:11:17

标签: php regex string strpos

我有多个图片标签的字符串。 喜欢这个

<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg">

我想找到 FIRST 这样的标记,并从中获取图像名称 的 5844644f69fe7-64.jpg 怎么可以在PHP中完成,因为字符串中有很多其他文本和标签?

3 个答案:

答案 0 :(得分:4)

你应该像@moopet建议的那样使用。这是代码,但请归功于@moopet。

$str = '<img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg">';

$doc = new DOMDocument();
$doc->loadHTML($str);

$first_img = $doc->getElementsByTagName("img")[0];
var_dump( basename($first_img->getAttribute('src')) );

答案 1 :(得分:1)

不要使用正则表达式。使用PHP的DOM解析器或其他方法提取标签,然后使用src元素上的PHP basename()函数来提取文件名。

答案 2 :(得分:0)

使用preg_match_all()查找所有出现的情况,然后获取第一个出现的情况。

示例:

<?php
preg_match_all('/<\s*img[^<>]+?src\s*=\s*[\'\"][^<>\'\"]+?\/([^<>\'\"\/]\.jpg)/', $html, $matches, PREG_SET_ORDER); 
var_dump($matches[0]); 
?>