Reputation: 1323
How to use simple html dom parse img
html5 attribute: data-original
$htmls = '<img class="lazy" alt="Nubifragio a Verbania , ferite 2 turiste Gravi danni, chiesto stato di calamità foto" title="Nubifragio a Verbania , ferite 2 turiste Gravi danni, chiesto stato di calamità foto" data-original="http://www.repubblica.it/images/2012/08/26/130634575-506cc9ae-11b8-4a53-920c-539a3811e46b.jpg" src="http://www.repubblica.it/static/images/homepage/2012/lazy.png" width="130" height="98" style="display: inline; ">';
$html = str_get_html($htmls);
$fata = $html->find('img');
foreach($fata as $newimage){
echo $newimage->data-original; //0
echo $newimage->src; //http://www.repubblica.it/static/images/homepage/2012/lazy.png
}
I could get the attribute src
, but data-original
return 0
Upvotes: 13
Views: 15610
Reputation: 552
Using braces would be more efficient:
$newimage->{'data-original'};
Another Example:
<?php
class foo {
var $bar = 'I am bar.';
var $arr = array('I am A.', 'I am B.', 'I am C.');
var $r = 'I am r.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->{$baz[1]} . "\n";
$start = 'b';
$end = 'ar';
echo $foo->{$start . $end} . "\n";
$arr = 'arr';
echo $foo->{$arr[1]} . "\n";
?>
Read more about variables wraped in braces: PHP documentation: Variables
Upvotes: 0
Reputation: 61
Hope this will work
$thumbs= $video->find('img[class=image]', 0)->{data-original};
Upvotes: 0
Reputation: 703
Just an FYI:
I tried:
$newimage['data-original'];
but this is what worked for me:
$property = 'data-original';
$newimage->$property;
Upvotes: 7
Reputation: 72975
$newimage->data-original;
means
$newimage->data - original;
A way round this is to try:
$property = 'data-original';
$newimage->$property;
or, to use the alternative syntax:
$newimage['data-original'];
Upvotes: 27