Mi stavo imbarcamenando in qualche modifica al template del blog e mi serviva un modo facile per estrarre le immagini dai post, magari evitando di usare le gigantesche librerie che si trovano in giro.
Fortunatamente dal PHP5 sono implementate nel core molte funzioni DOM che facilitano non poco la vita dei coder. In particolare parlo degli strumenti messi a disposizione dalla classe DOMXPath che è in grado di lanciare una query di ricerca sul target. E via DOMElement::getAttribute che restituisce il valore dell’attributo richiesto.
Ma vi assicuro che scriverlo è molto più facile che spiegarlo ๐
<?php
$myVar = "Ciao <br /><img src=\"11.jpg\" alt=\"foto\" /><br /><img src=\"12.jpg\" alt=\"foto\" />";
$doc = new DOMDocument;
$doc->loadHTML($myVar);
$xpath = new DOMXPath($doc);
$nodo = $xpath->query(‘//img[@src]’);
foreach ($nodo as $nodo){
$imgsrc = $nodo->getAttribute(‘src’);
echo "<img src=\"".$imgsrc."\" alt=\"myMagicImage\" />";
}
?>
Facile no?
Grande!
Proprio ieri mi scervellavo per trovare un modo semplice per impaginare le immagine estratte dai feed rss, e questo sistema mi sembra ottimo, con le dovute modifiche ๐
Anche noi ingorantoni di programmazione possiamo andare avanti con soluzioni prese da altri. Forse è questo che significa ion realtà "web 2-0" ๐
Felice di essere utile ๐
Ma ricorda di usare $doc->loadXML se è un feed.
Poi con $doc->getElementsByTagName per prendere l'elemento dell'albero XML che ti interessa.
Salve, non sapendo come contattarla lascio un commento qui..
Volevo sapere se era interessato ad effettuare uno scambio link.
Il mio sito è il seguente
http://www.pcweblog.it
Ciao davidonzo, da premettere che non sono una cima nella programmazione… Vado subito al punto:
Cercavo un modo per estrarre da una serie di post soltanto il tag <object>, in modo da creare, in un'altra pagina, una galleria dei video (youtube li mette dentro quel tag lì).
Ho preso il tag "object" come esempio.. potrebbe anche essere <img> o <p>.
Devo assegnare ad ogni tag un ID, in modo da renderlo riconoscibile dallo script php? (suona male anche a me)
Devo usare il link del post singolo come punto di riferimento?
Non so cosa fare, help mee :((
Grazie e complimenti per il blog, molto utile!!!
@ Milk: una volta che prendi tutti i tag object hai un array.
Se ci sono tre filmati nella pagina, avrai un array con i tre <object bla bla bla ></object>.
Li prendi e con un semplice ciclo foreach ne fai quello che vuoi.
Basta saper gestire un array.
Leandro
mi puoi aiutare per i feed rss?
Grazie