Reputation: 89
How to get <li>
inner html using php DOM
method these are in php string variable ihave to filter li inner html
<div class="cModule myphotos">
<h3><span>My photos</span></h3>
<ul class="cResetList cThumbList clrfix">
<li>
<a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos/photo?albumid=12#photoid=67" hidefocus="true" style="outline: none;"><img class="cAvatar jomNameTips cAvatar-sidebar" title="Uploaded by shine s" src="http://107.20.167.165/projects/mysportsjam/images/photos/103/12/thumb_05c0beeb8f0f32a08538dad7.jpg" alt="shine s"></a>
</li>
<li>
<a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos/photo?albumid=12#photoid=43" hidefocus="true" style="outline: none;"><img class="cAvatar jomNameTips cAvatar-sidebar" src="http://107.20.167.165/projects/mysportsjam/images/photos/103/12/thumb_c122ff8dafd2edeba377a1cd.jpg" alt="shine s" original-title="Uploaded by shine s"></a>
</li>
<li>
<a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos/photo?albumid=12#photoid=66" hidefocus="true" style="outline: none;"><img class="cAvatar jomNameTips cAvatar-sidebar" title="Uploaded by shine s" src="http://107.20.167.165/projects/mysportsjam/images/photos/103/12/thumb_9414b5dff6c8644d197ff684.jpg" alt="shine s"></a>
</li>
</ul>
<div class="app-box-footer">
<a href="/projects/mysportsjam/index.php/joom-social/103-shine/photos" hidefocus="true" style="outline: none;">View all photos</a>
</div>
</div>
how to filter li inner html href link and image tag.
Upvotes: 1
Views: 966
Reputation: 6908
You can use DOMDocument
for that.
The sample code shows how to get the href
attribute. I think you can figure out yourself how to get the image's src
.
<?php
$xml = new DOMDocument();
$xml->loadHTML($body);
$nodes = $xml->getElementsByTagName('li');
for($curr = 0; $curr < $nodes->length; $curr++) {
$li = $nodes->item($curr);
$innerHTML= '';
$children = $li->childNodes;
foreach ($children as $child) {
$innerHTML .= $child->ownerDocument->saveXML( $child );
}
print $innerHTML;
foreach($li->childNodes as $child) {
$a = $child;
if(is_a($a, "DOMElement")) {
$href = $a->getAttribute('href');
print "{$href}\n";
}
}
print "\n";
}
Upvotes: 2