begin process at 2012 05 31 03:54:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Mettre tous les tags img d'un attribut xml dans une array


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Mettre tous les tags img d'un attribut xml dans une array

mardi 12 avril 2011 à 03:32:54 | Mettre tous les tags img d'un attribut xml dans une array

jimmyhendrix

Salut !

J'ai un problème. J'ai un fichier xml qui contient les articles de mon blog. Donc, j'ai un peu de code html dans un attribut appellé texte qui contient le contenu du post. J'ai de temps en temps quelques img tags. Voilà le problème.

Je cherche un moyen de récupérer tous les src de mes img tags de mon fichier xml et les introduire dans une array (ou une boucle)(ou les deux). En fait, j'aimerais toutes les mettre dans une variable que je peux introduire dans le code html de ma page du genre <?php echo $tous_mes_images; ?> (Pour être plus précis : dans le head de ma page, je veux créer plusieurs <link rel="image_src" href="SRC-DE-MON-IMAGE" />)

Code PHP :
<?php
//Je récupère mon texte dans mon fichier xml
$xdoc = new DomDocument;
$xdoc->Load('postblog.xml');
$xname = $xdoc->getElementsByTagName('post');
$select = $xname->item(0);
$texte = $select->getAttributeNode('texte')->value;

//mais la suite, je me le figure très mal...

//et j'ai trouvé ce code, mais je n'arrive
//pas à le modifier comme je vous l'explique plus haut :

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');


///// Je ne veux pas qu'il aille prendre le tout dans un fichier html


// Find all images 
foreach($html->find('img') as $element) 
       echo $element->src . '<br>';

// Find all links 
foreach($html->find('a') as $element) 
       echo $element->href . '<br>';

?>



Est-ce que quelqu'un a une piste ? Je suis vraiment bloqué. J'espère avoir été clair, c'est dure à expliquer. Merci.
mercredi 13 avril 2011 à 03:02:51 | Re : Mettre tous les tags img d'un attribut xml dans une array

jimmyhendrix

C'est frustrant, j'y suis presque !

J'ai trouvé une fonction qui le fait, mais ça ne fonctionne pas pour tous les img tags, seulement le premier :

Code PHP :
<?php

$html = '<img src="mypicture.jpg" id="randomid" /> et un deuxieme <img src="mypicture2.jpg" id="randomid2" />';

if (preg_match('/<img.+?src(?: )*=(?: )*[\'"](.*?)[\'"]/si', $html, $arrResult)) {
    echo $arrResult[1];  // Should display mypicture.jpg

//J'ai essayé de rajouter echo $arrResult[2];
//mais seulement mypicture.jpg affiche.

} else {
    echo "No match found";
}

?>


jeudi 14 avril 2011 à 20:04:42 | Re : Mettre tous les tags img d'un attribut xml dans une array

salttaste

il y a preg_match_all() qui te retourne une array avec toute les img tags
vendredi 15 avril 2011 à 00:42:25 | Re : Mettre tous les tags img d'un attribut xml dans une array

jimmyhendrix

Ouais

en effet, j'ai essayé preg_match_all(), mais j'arrive pas à cerné chacun des src indépendamment. Je vais te donner mon code, ça va être plus clair :

Code PHP :
<?php
$xdoc = new DomDocument;
$xdoc->Load('postblog.xml');
$xname = $xdoc->getElementsByTagName('post');
$select = $xname->item(0);

$texte = $select->getAttributeNode('texte')->value;
htmlspecialchars_decode($description, ENT_NOQUOTES);

if (preg_match('/<img.+?src(?: )*=(?: )*[\'"](.*?)[\'"]/si', $description, $arrResult)) {
   $thb2 = '<link rel="image_src" href="'.$arrResult[1].'" />';
} else {
    $thb2 = '';
}
?>


Donc, le code fonctionne très bien, mais j'obtiens seulement un thumbnail ; j'aimerais en avoir <link rel... pour chacune des images tags qui se trouverait dans mon attribut texte (xml).

Est-ce que t'as une idée comment faire ?
vendredi 15 avril 2011 à 11:02:45 | Re : Mettre tous les tags img d'un attribut xml dans une array

salttaste

Réponse acceptée !
preg_match_all('/<img.+?src(?: )*=(?: )*[\'"](.*?)[\'"]/si', $txt, $arrResult);

foreach($arrResult[1] as $lnk)
{
echo $lnk.'<br>';
}

samedi 16 avril 2011 à 04:10:04 | Re : Mettre tous les tags img d'un attribut xml dans une array

jimmyhendrix

Hourra !

Ça fonctionne à merveille ! Je n'ai eu qu'à rajouter foreach($arrResult[1] as $lnk)
{
echo '<link rel="image_src" href="'.$lnk.'" />';
}

et j'ai exactement ce que je cherchais ! Merci encore !


Cette discussion est classée dans : code, html, xml, img, tags


Répondre à ce message

Sujets en rapport avec ce message

Créer des documents XML avec MySQL et PHP [ par kate1910 ] Bonjour tout le monde , bon comme le titre indique j'essaye decréer un fichier XML avec MySQL et PHP . dans ma base de donnée j'ai une tables" tablea Définir height par % dans une iframe ? [ par smed79 ] Bonjour, dans une iframe ex : [code=html][/code] esque en peut définir height par [b]%[/b] et non par des [b]px[/b] ? pour qu php gère les balises html d'un fichier xml [ par 10demon10 ] Bonjours à tous (et joyeuses fêtes) Voila je voudrai savoir si il est possible qu'une page PHP qui affiche le contenu d'un fichier XML puisse aussi g Problème onclick [ par pereweed ] Bonjour, J'ai un problème avec mon code. [code=php]echo " ";[/code] Strip html tags [ par tonydanza ] Bonjour, je tente de récuperer un flux rss dans un fla Malheureusement celui ce me renvoie les balises html ! J'ai essayé stip tag mais sans succes charger un xml uploadé dans un Mom [ par MotoTouriste ] Bonjour, J'ai un petit souci et j'aimerai avoir des conseils. Voilà: J'ai un formulaire HTTP d'upload de fichier. L'utilisateur doit uploader un fic convertion d'extention de fichiers txt en html à partir d'un code [ par appolin1 ] sulut la famille,vous allez bien j'espère. les gars,les filles, je suis coinçé. En fait je developpe un site web dans lequel se trouve des fichier tx URGENT: Comment interprété des accents en XML dans le tag name [ par j3r3m067 ] Bonjour, j'ai un fichier xml dont le tag name est: [code=xml]Rien[/code] Mon problème est que dans mon php quand je fait: [code=php]$query[] = "/Hist PERL - HTML [ par anjinho49 ] Bonjour,Petit soucis dont je ne trouve pas la réponse sur les exemples de html dans perl. j'ai des pages en perl où j'ai mis du code HTML. Quand je cl


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales