chaine de caracteres

choubba
Invité n'ayant pas de compte PHPfrance

30 mars 2006, 19:53

Bonjour, je souhaite effacer des segments de chaine de longueur variable ex : style="123", style="123456" dans une chaine exemple : 'hello style="123" et style="123456" hello'. comment faire svp ?
j'ai créé ce script mais ça ne fonctionne pas :
<?php

$chaine ='hello you c style="123456" un test de quoi  style="789112" merci oui oui oui' ;

// Effacement de la chaine style

for ($i=1; $i<=strlen($chaine); $i++){
	
if  (substr($chaine, $i, 7) == 'style="') { 

     for ($j=1;$j<=strlen($chaine);$j++) {

     if (substr($chaine, $i+$j,1) == '"'){ 

     $chaine = substr_replace($chaine, " ", $i, $j+1); 

}}}}

echo $chaine;

?>

choubba
Invité n'ayant pas de compte PHPfrance

30 mars 2006, 19:55

En sachant bien sur que les segments de longueur variable ne sont pas connus à l'avance seul le debut du segment ex: style=" et la fin du segment ex : " est connu.

ViPHP
ViPHP | 1380 Messages

30 mars 2006, 20:04

C'est un cas relativement simple de remplacement par expressions régulières.

Penche-toi plus particulièrement sur la fonction preg_replace().
http://php.net/manual/fr/function.preg-replace.php
ripat

Mammouth du PHP | 768 Messages

31 mars 2006, 06:50

<?php
/*
[[:digit:]] n'importe quel chiffre
+ le plus 1 ou plusieurs occurence

source: http://expreg.com/symbole.php
*/

$chaine ='hello you c style="123456" un test de quoi style="789112" merci oui oui oui' ;
echo preg_replace('`style="[[:digit:]]+"`', '', $chaine);
/*
hello you c un test de quoi merci oui oui oui
*/
?>
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

choubba
Invité n'ayant pas de compte PHPfrance

31 mars 2006, 12:22

Merci beaucoup les gars, vous m'avez retiré une épine du pied !!!!!