Extraire des informations

Petit nouveau ! | 7 Messages

16 mai 2014, 19:31

Bonjour,

J'ai un script qui me permet d'extraire des mots en enlevant les balises, et les joignants en les separants par des virgules. Voici le code:

$m=array();
preg_match('/<b>Tags:<\/b>(.*?)<\/div>/ims',$buff,$m);
$info['tags']=trim(strip_tags($m[1]));
$cats=explode(',',$info['tags']);
$cats=array_map('trim',$cats);
$info['tags']=implode(',',$cats);

Qui extrait ce code html:
<b>Tags:</b>
<a href="http://url" title="voiture">voiture</a>, <a href="http://url" title="camion">camion</a> </div>

De cette facon:
voiture,camion

Voici le code html que j'aimerai maintenant extraire de la meme facon:

<span>Tags:</span>
<ul>
<a href="http://url" title="voiture">voiture</a>
<a href="http://url" title="camion">camion</a>
</ul>

( Notez qu'il n'y a plus de virgules dans le code html mais que j'aimerai toutefois en avoir pour séparer les mots clés une fois extraits )

Merci pour votre aide.

Eléphant du PHP | 229 Messages

18 mai 2014, 19:50

Bonjour,

a ta place je ferais l'extraction des attributs sous forme de tableaux ou JSON ou XMLou ce que tu veux.

Puis tu les insères dans tes balises.

Peut être une piste :
http://www.php.net/manual/fr/function.parse-url.php

Sinon il faut modifier l'expression régulière
De plus explode "," me parait erroné si il y a une virgule dans l'ancre.(A tester, je suis pas sur d'avoir bien lu)

Mammouth du PHP | 2278 Messages

19 mai 2014, 07:48

Regarde là:
vos-contributions/remplacement-selectif ... -t199.html
a fait des fdemplacements mais ça doit pouvoir être adapté à ton cas.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD