在以下示例中,我的数组返回空。我需要将(完整!)图像链接到我的数组中。
这是我的代码:
<?php
header('Content-Type: text/html; charset=utf-8');
$url = "http://www.asaphshop.nl/epages/asaphnl.sf/nl_NL/?ObjectPath=/Shops/asaphnl/Products/80203122";
$htmlcode = file_get_contents($url);
$pattern = "/class=\"noscript\"\>(.*?)\<\/div\>/imU";
preg_match_all($pattern, $htmlcode, $matches);
//print_r ($matches);
$image = ($matches[0]);
print_r ($image);
?>
这是我用来尝试将(完整!)图像链接到我的数组中的文件的一部分:
<div id="ProductImages" class="noscript">
<ul>
<li>
<a href="/WebRoot/products/8020/80203122/bilder/80203122.jpg">
<img
itemprop="image"
alt="Jesus Remember Me - Taize Songs (2CD)"
src="/WebRoot/AsaphNL/Shops/asaphnl/5422/8F43/62EE/D698/EF8E/4DEB/AED5/3B0E/80203122_xs.jpg"
data-src-xs="/WebRoot/AsaphNL/Shops/asaphnl/5422/8F43/62EE/D698/EF8E/4DEB/AED5/3B0E/80203122_xs.jpg"
data-src-s="/WebRoot/products/8020/80203122/bilder/80203122_s.jpg"
data-src-m="/WebRoot/products/8020/80203122/bilder/80203122_m.jpg"
data-src-l="/WebRoot/products/8020/80203122/bilder/80203122.jpg"
/>
</a>
</li>
</ul>
</div>
答案 0 :(得分:0)
首先:你永远不应该用正则表达式解析HTML,因为HTML太复杂而无法像这样解析。请查看this post。
对于您的问题,您的问题是您使用多行修改器而不是单行修改器。改变你的正则表达式:
/class=\"noscript\"\>(.*?)\<\/div\>/isU
如果你想要一个最干净的结果,请使用这个(带有lookbehind / lookahead):
/(?<=class=\"noscript\"\>)(.*?)(?=\<\/div\>)/isU