Php Fnd在字符串中的特定位置,并从中获取数据

Php Fnd在字符串中的特定位置,并从中获取数据,php,regex,string,strpos,Php,Regex,String,Strpos,我有一个包含多个图像标签的字符串。 像这样 <img src="/files/028ou2p5g/blogs/9d66329f4/5844644f69fe7-64.jpg"> 我想先找到这样的标签,并从中获取图像名称 5844644f69fe7-64.jpg 如果字符串中有很多其他文本和标记,那么如何在PHP中实现这一点呢?不要为此使用正则表达式。使用PHP的DOM解析器或其他方法提取标记,然后使用PHP在src元素上的函数提取文件名。您应该像@moopet建议的那样使用。这是

我有一个包含多个图像标签的字符串。 像这样

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

我想先找到这样的标签,并从中获取图像名称 5844644f69fe7-64.jpg
如果字符串中有很多其他文本和标记,那么如何在PHP中实现这一点呢?

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

您应该像@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')) );
$str='';
$doc=新的DOMDocument();
$doc->loadHTML($str);
$first_img=$doc->getElementsByTagName(“img”)[0];
var_dump(basename($first_img->getAttribute('src'));
用于查找所有事件,然后获取第一个事件

示例:

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


这并不是说这不起作用,但是对于HTML的子集使用正则表达式是可以的,就像这样。我投票结束这个问题,因为没有明确的答案。答案是没有充分发挥作用。请关闭它,我用更简单的问题打开了另一个。