Eléphanteau du PHP |
29 Messages
12 juil. 2007, 21:02
j'avais trop simplifié mon exemple
ce code fonctionne.
inputDoc = @DOMDocument::loadHTMLFile($goto);
echo utf8_decode(inputDoc->saveHTML()) ;
résultat (au milieu de bien d'autre chose):
L'Italien Filippo Pozzato (Liquigas) a remporté au sprint la cinquième étape du Tour de France
mais celui-ci non
inputDoc = @DOMDocument::loadHTMLFile($goto);
$xpath = new DOMXPath(inputDoc);
$outputDoc = new DOMDocument();
$aNode = $xpath->query('//div[@class="caletexte"]')->item(0) ;
if ( $aNode ) $outputDoc->appendChild(outputDoc->importNode($aNode, TRUE)) ;
echo utf8_decode($outputDoc->saveHTML());
résultat:
L'Italien Filippo Pozzato (Liquigas) a remporté au sprint la cinquième étape du Tour de France?>
celui-ci fonctionnerait presque correctement,
mais lourd le décodage élément par élément
et je perds les marque <b> </b>
.......
if ( $aNode ) $outputDoc->appendChild(outputDoc->importNode($aNode, TRUE)) ;
$xpath = new DOMXPath($outputDoc);
foreach ( $xpath->query('//p') as $e ) {
$e->nodeValue = utf8_decode($e->nodeValue) ;
}
echo $outputDoc->saveHTML();
celui-ci fonctionne correctement, en étant relativement propre
$doc = @DOMDocument::loadHTMLFile("http://www.lequipe.fr/Rugby/20070713_103904Dev.html");
$meta = $doc->getElementsByTagName('meta')->item(0);
$meta->setAttribute("content", "text/html; charset=iso-8859-1") ;
$doc = @DOMDocument::loadHTML(utf8_decode($doc->saveHTML())) ; /* convertit la page d'origine */
/* on peut maintenant manipuler la page convertie */
$xpath = new DOMXPath($doc);
$doc2 = new DOMDocument;
$doc2->appendChild($doc2->importNode($xpath->query('//div[@class="caletexte"]')->item(0), TRUE)) ;
echo $doc2->saveHTML();
si vous avez mieux, n'hésitez pas
pour tester: Url=
http://www.lequipe.fr/Rugby/20070712_191853Dev.html (par exemple)
Merci