Bon, j'ai d'autre questions. Je souhaiterais supprimer toutes mes balises html d'une chaine de caractères php ....
Pour mes tests, je remplace les < > par ( ) pour voire si cela a bien été retiré.
$test = "(span classe='tetetet') kjsdhfjksdfh (/span)";
$test2 = preg_replace ('(\((/)?.*\))', '', $test);
echo "test = $test, <br>test2 = $test2<br>";
affiche :
test = (span classe='tetetet') kjsdhfjksdfh (/span),
test2 = |
tout a été effacé. C'est un normal car j'ai spécifié dans le motif, n'importe quel caractères, .*, apres une premiere (, il a donc pris en compte aussi la prenthèse fermante ). Le motif ne s'est pas arrété a la première ).
J'ai donc été plus restrictif : uniquement des alphanumériques entre les parenthèses :
$test2 = preg_replace ('(\((/)?[[:alnum:]]*\))', '', $test);
echo "test = $test, <br>test2 = $test2<br>";
affiche :
test = (span classe='tetetet') kjsdhfjksdfh (/span),
test2 = (span classe='tetetet') kjsdhfjksdfh |
ma première balise n'a pas été pris en compte à cause des ' par contre la 2ème (/span) a bien été prise en compte.
Comment faire ?
j'ai essayé avec ([\'\"=][[:alnum:]])* mais cela ne fonctionne pas.
$test2 = preg_replace ('(\((/)?([\'\"=[[:alnum:]]])*\))', '', $test); |
Message édité par weed le 14-05-2006 à 12:15:53