1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| <?php
// on récupère les éléments intéressants
$pattern="/<div\sclass=\"postUser\">\s*
<img\sclass=\"posterAvatar\"\ssrc=\"
([^\"]*)\" # lien de l'avatar
[^>]*>\s*
([^<]*) # pseudo
<br\/>\s*
([^<]*) # qualité
<br\/>\s*le\s
([^<]*) # date du post
<br\/>\s*
<\/div>\s*
<div\sclass=\"postMessage\">
(.*?) # code html du post
\s*<\/div>\s*
<\/div>\s*
(?:<div\sclass=\"postComment\">|<!--) # chaque post se termine par le suivant, sauf le dernier
/sx";
$resultat=preg_match_all($pattern, $page,$res);
array_shift($res); // on enlève le match de toute la pattern
// un peu de nettoyage (à creuser)
$patternClean=array("/<img\ssrc=\"http:\/\/www\.developpez\.net\/forums\/images\/smilies.*?title=\"([^\"]*)\"[^>]*>/s", // smilies
"/<a\shref=\"http:\/\/www\.developpez\.net\/forums\/showthread.*?<\/a>/s", // liens entre posts des citations
"/\sclass=\".*?\"/s", // classes inutiles
"/\s*\/>/", // maniaquerie de fermeture de balise
"/(\w)\s([.,?!])/s" // faute de typographie
);
$replaceClean=array("$1",">>","","/>","$1$2");
$res[4]=preg_replace($patternClean,$replaceClean,$res[4]);
// affichage top design!
for ($i=0;$i<count($res[0]);$i++)
{
echo <<<LOD
lien avatar: {$res[0][$i]}<br/>
auteur: {$res[1][$i]}<br/>
qualité: {$res[2][$i]}<br/>
date: {$res[3][$i]}<br/>
<div>{$res[4][$i]}</div><br/>
LOD;
}
?> |
Partager