Question

I'm trying to get attribute values in data-date, inside the <ul> tag

Sample Code:

<ul class="media-list">
    <li class="media-item" data-date="2014-04-24 07:30:29">Tes</li>
    <li class="media-item" data-date="2014-04-25 08:30:29">Tes</li>
    <li class="media-item" data-date="2014-04-26 09:30:29">Tes</li>
</ul>

I want to get those values inside the list, below is the desired output:

(2014-04-24 07:30:29, 2014-04-25 08:30:29, 2014-04-26 09:30:29)

Was it helpful?

Solution

The following code will work perfectly to get each li's data-date value.

<?php

include('inc/simple_html_dom.php');

$html = str_get_html('<ul class="media-list">
                      <li class="media-item" data-date="2014-04-24 07:30:29">Tes</li>
                      <li class="media-item" data-date="2014-04-25 08:30:29">Tes</li>
                      <li class="media-item" data-date="2014-04-26 09:30:29">Tes</li>
                      </ul>');
foreach($html->find('ul.media-list li.media-item') as $li) 
{
    echo $li->{'data-date'}."<br>";
}
?>

OTHER TIPS

You're going to need to use this clumsy syntax:

$li->{'data-date'};

You can try it:

include "simple_html_dom.php";
$html = str_get_html('<ul class="media-list">
    <li class="media-item" data-date="2014-04-24 07:30:29">Tes</li>
    <li class="media-item" data-date="2014-04-25 08:30:29">Tes</li>
    <li class="media-item" data-date="2014-04-26 09:30:29">Tes</li>
</ul>');

$tag = "data-date";
$html_lis = $html->find('li');

foreach($html_lis as $row_li) {

    echo $row_li->$tag;
    // Or echo $row_li->{'data-date'}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top