我创建的正则表达式模式有什么问题:
$link_image_pattern = '/\<a\shref="([^"]*)"\>\<img\s.+\><\/a\>/';
preg_match_all($link_image_pattern, $str, $link_images);
我想要做的是匹配其中包含图像的所有链接。但是当我尝试输出时$link_images
,它包含第一个索引中的所有内容:
<pre>
<?php print_r($link_images); ?>
</pre>
标记看起来像这样:
数组 ( [0] => 数组 ([0] => "
<p> </p>
<p><strong><a href="url">Title</a></strong></p>
<p>Desc</p>
<p><a href="{$image_url2}"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="{$image_url2}" width="569" height="409"></a></p>
但是当输出匹配的内容时,它只返回匹配模式的第一个字符串加上页面中的所有其他标记,如下所示:
<a href="{$image_url}"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="{$image_url}" width="568" height="347"></a></p>
<p> </p>
<p><strong><a href="url">Title</a></strong></p>
<p>Desc</p>
<p><a href="{$image_url2}"><img style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="{$image_url2}" width="569" height="409"></a></p>")