Php preg_match()与img src不匹配

Php preg_match()与img src不匹配,php,regex,Php,Regex,我在php变量中有这个字符串 $str = 'This is an iamge: <img src="images/Christmas.PNG" width=70%; height=40%">'; 当我直接通过echo$matches或在foreach循环中打印$matches时,变量为null 为什么会这样?谢谢。。有专门为此设计的工具 您可以使用解析HTML,然后轻松获取src属性的值: $previous_value = libxml_use_i

我在php变量中有这个字符串

$str = 'This is an iamge: <img src="images/Christmas.PNG" width=70%; height=40%">';
当我直接通过
echo$matches
或在foreach循环中打印
$matches
时,变量为null

为什么会这样?谢谢。

。有专门为此设计的工具

您可以使用解析HTML,然后轻松获取
src
属性的值:

$previous_value = libxml_use_internal_errors(true);
$string = 'This is an iamge: <img src="images/Christmas.PNG" width=70%; height=40%">';
$dom = new DOMDocument();
$dom->loadHTML($string);
echo $dom->getElementsByTagName('img')->item(0)->getAttribute("src");
libxml_clear_errors();
libxml_use_internal_errors($previous_value);
$previous\u value=libxml\u use\u internal\u错误(true);
$string='这是一个iamge:';
$dom=新的DOMDocument();
$dom->loadHTML($string);
echo$dom->getElementsByTagName('img')->item(0)->getAttribute(“src”);
libxml_clear_errors();
libxml_使用_内部_错误($previous_值);

当我使用它时,它不会在我的屏幕上显示任何内容。您应该知道,这适用于PHP版本,一直到5.1。确保代码中没有语法错误。谢谢,在初始化之前我就有了。我想要strpos的原因是我需要子字符串的索引(第一个索引)。我该怎么做呢?我现在不在电脑旁,但有点像
$position=strpos($string,'src')
应该可以做到这一点。PHP中没有
g
global标志。使用
preg\u match\u all
获取所有匹配项。此外,您的模式将匹配
images/Christmas.PNG“宽度=70%;高度=40%”
可能是您想要的
preg_match($pattern, $str, $matches, PREG_OFFSET_CAPTURE);
$previous_value = libxml_use_internal_errors(true);
$string = 'This is an iamge: <img src="images/Christmas.PNG" width=70%; height=40%">';
$dom = new DOMDocument();
$dom->loadHTML($string);
echo $dom->getElementsByTagName('img')->item(0)->getAttribute("src");
libxml_clear_errors();
libxml_use_internal_errors($previous_value);