2017-04-05 99 views
0

我有一个数据属性中的网址,我需要得到的第一个:如何获取数据属性值?

<div class="carousel-cell"> 
    <img onerror="this.parentNode.removeChild(this)"; class="carousel-cell-image" data-flickity-lazyload="http://esportareinsvizzera.com/site/wp-content/uploads/8.jpg"> 
</div> 
<div class="carousel-cell"> 
    <img onerror="this.parentNode.removeChild(this);" class="carousel-cell-image" data-flickity-lazyload="http://www.finanziamentiprestitimutui.com/wp-content/uploads/2014/09/esportazioni-finanziamento-credito.jpg"> 
</div> 
<div class="carousel-cell"> 
    <img onerror="this.parentNode.removeChild(this);" class="carousel-cell-image" data-flickity-lazyload="http://www.infologis.biz/wp-content/uploads/2013/09/Export.jpg"> 
</div> 
<div class="carousel-cell"> 
    <img onerror="this.parentNode.removeChild(this);" class="carousel-cell-image" data-flickity-lazyload="http://www.cigarettespedia.com/images/2/25/Esportazione_horizontal_name_ks_20_s_green_italy.jpg"> 
</div> 

我一直在阅读大量像this onethis one的答案,但我不是一个PHP的人。

我用它来获取第一张图片,但现在我需要实际的数据属性值,而不是

<?php 
     $custom_image = usp_get_meta(false, 'usp-custom-4'); 
     $custom_image = htmlspecialchars_decode($custom_image); 
     $custom_image = nl2br($custom_image); 
     $custom_image = preg_replace('/<br \/>/iU', '', $custom_image); 
     preg_match('/<img.+src=[\'"](?P<src>.+?)[\'"].*>/i',$custom_image, $image); 
    ?> 
    <img src="<?php echo $image['src']; ?>" alt="<?php the_title(); ?>"> 

回答

3

使用DOMDocument解析HTML,获得对应img标签的元素和得到的data-flickity-lazyload属性第一个img标签:

... 
$DOM = new DOMDocument; 
$DOM->loadHTML($custom_image); 
$items = $DOM->getElementsByTagName('img'); 

$mySrc = $items->item(0)->getAttribute('data-flickity-lazyload'); 
+0

嘿非常感谢,我应该这样做吗? $ mySrc = $ items [0] - > getAttribute('data-flickity-lazyload');

+0

提供有关您的错误的更多信息:您是否看到任何警告消息? '$ mySrc'的内容是什么?将'$ custom_image'加载到'DOMDocument'时,它的内容是什么? – gmc

+0

如果我确实echo $ custom_image我得到'

' –