13

如何使用简单的 html dom 解析imghtml5 属性: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
}

我可以得到属性src,但data-original返回0

4

4 回答 4

25
$newimage->data-original;

方法

$newimage->data - original;

一种解决方法是尝试:

$property = 'data-original';
$newimage->$property;

或者,使用替代语法:

$newimage['data-original'];
于 2012-08-26T15:13:49.483 回答
6

仅供参考:

我试过了:

$newimage['data-original'];

但这对我有用:

$property = 'data-original';
$newimage->$property;
于 2014-10-25T04:59:27.383 回答
0

使用大括号会更有效

$newimage->{'data-original'};

另一个例子:

<?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";

?>

阅读更多关于用大括号括起来的变量的信息: PHP 文档:变量

于 2022-01-20T12:10:04.273 回答
0

希望这会奏效

$thumbs= $video->find('img[class=image]', 0)->{data-original};

于 2018-05-24T04:16:17.047 回答