im tryng, чтобы получить alt значение img и его ссылку href, я создал этот фрагмент, но это эхо-ссылка, а затем значение alt, как я могу заставить его эхо-значение alt, а затем ссылку?
html
<div id="images"><div class="img-logo-big" style="width: 130px"><a class="url" href="http://link.com"><img src="http://host.com/images/image.jpg" alt="image name" /></a></div>
<div class="img-logo-big" style="width: 130px"><a class="url" href="http://link.com"><img src="http://host.com/images/image.jpg" alt="image name" /></a></div>
<div class="img-logo-big" style="width: 130px"><a class="url" href="http://link.com"><img src="http://host.com/images/image.jpg" alt="image name" /></a></div></div></div>
любой мой PHP code
$html = new simple_html_dom();
$html = $html->load($page);
foreach($html->find('div[id=images],img[alt],a[class=url]') as $element) {
$g .="$element->alt\n $element->href";
echo $g;
}
почему этот код не влияет на $g.="$element->alt\n $element->href";?
$g.="$element->alt\n $element->href";?
Вещь, которую вы хотите повторить, - это родительский элемент img и a, который всегда является .img-logo-big
:
foreach($html->find('.img-logo-big') as $img){
echo $img->find('img', 0)->alt . "\n";
echo $img->find('a', 0)->href . "\n";
}
Поскольку вы уже получаете теги в переменной $g
сделайте это так, вы получите значение alt и значение изображения отдельно от тех результирующих тегов
$g='<div id="images"><div class="img-logo-big" style="width: 130px"><a class="url" href="http://link.com"><img src="http://host.com/images/image.jpg" alt="image name" /></a></div>
<div class="img-logo-big" style="width: 130px"><a class="url" href="http://link.com"><img src="http://host.com/images/image.jpg" alt="image name" /></a></div>
<div class="img-logo-big" style="width: 130px"><a class="url" href="http://link.com"><img src="http://host.com/images/image.jpg" alt="image name" /></a></div></div></div>';
preg_match_all('/<a class="url" href=(.*?)>|<img (?:.*?) alt=(.*?)\/>/', $g, $matches);
echo '<pre>';
print_r(array_values(array_filter($matches[1])));
print_r(array_values(array_filter($matches[2])));