Aller au contenu

eg_replace


Lentreprenaute

Sujets conseillés

comment ecrire cela pour remplacer toutes les répétitons !

dans mon exemple j'en remplace 3 par 1 mais est ce qu'il est possible

d'ecrire remplacer tous les tags qui se répete par un seul! car sinon ca devient ingérable.

moi et les expressions ca fait deux, un grand merci a celui qui me donne la soluce :)

$letexte = ereg_replace("<ol><ol><ol>","<ol>",$letexte);// _ol

Florent

qui squatte le hub en ce moment

Lien vers le commentaire
Partager sur d’autres sites

Guest Hellway

Essaies ça :

$Chaine=preg_replace('/<([ol<> ])>/i', '<ol>', $Chaine);

Je te granti pas que ça marche, mais le principe sur lequel je me base, c'est de remplacer une chaine qui commence par < et qui fini par > et qui ne peut contenir que les caractères o,l,<,> et peut-être un espace en plus...

Le i ça veut dire que ça se répète autant de fois que possible.

Par contre, pour les < et > il est peut-être obligé de mettre un caractère d'échappement \.

Voilà :)

Lien vers le commentaire
Partager sur d’autres sites

$letexte  = ereg_replace("(<ol>){1,9}","<ol>",$letexte);

La syntaxe (<ol>){1,9} signifie "de 1 à 9 occurences de <ol>". Remplaces les nombres mini/maxi par les valeurs que tu souhaites.

Dan

Lien vers le commentaire
Partager sur d’autres sites

Nouvelle problematique

J'aimerai filtrer mon contenu pour remplacer tous les caractères spéciaux,

comme ce "&" qui s'ecrit je ne sais plus avec quel code. etc...

Connaissez vous un moyen de faire ca? je souhaite que mon contenu soit xhtml strict!

Merci

Florent

Lien vers le commentaire
Partager sur d’autres sites

Guest Hellway

$Chaine=str_replace('&', '&', $Chaine);

Sinon, pour la première question, je reste convaincu qu'il est préférable de ne pas avoir à spécifier un nombre déterminé de balises et plutôt de remplacer ces dernières quelque soit leur nombre. Bref, essaies ça :

$Chaine=preg_replace('/<([ol<> ]+)>/i', '<ol>', $Chaine);

Edité : Un doute dans la syntaxe...

Modifié par Hellway
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Pour les caractères spéciaux, deux solutions :

On réinvente la roue :)

function HTML_foo($txt){

$array=("&","&",

"\"",""",

"<","<",

">",">",

" "," ",

"¡","¡",

"¢","¢",

"£","£",

"€","¤",

"¥","¥",

"Š","¦",

"§","§",

"š","¨",

"©","©",

"ª","ª",

"«","«",

"¬","¬",

"­","­",

"®","®",

"¯","&masr;",

"°","°",

"±","±",

"²","²",

"³","³",

"Ž","´",

"µ","µ",

"¶","¶",

"·","·",

"ž","¸",

"¹","&supl;",

"º","º",

"»","»",

"Œ","¼",

"œ","½",

"Ÿ","¾",

"¿","¿",

"À","À",

"Á","Á",

"Â","Â",

"Ã","Ã",

"Ä","Ä",

"Å","Å",

"Æ","&Aelig;",

"Ç","Ç",

"È","È",

"É","É",

"Ê","&Ecric;",

"Ë","Ë",

"Ì","Ì",

"Í","Í",

"Î","Î",

"Ï","Ï",

"Ð","ð",

"Ñ","Ñ",

"Ò","Ò",

"Ó","Ó",

"Ô","Ô",

"Õ","Õ",

"Ö","Ö",

"×","×",

"Ø","Ø",

"Ù","Ù",

"Ú","Ú",

"Û","Û",

"Ü","Ü",

"Ý","Ý",

"Þ","þ",

"ß","ß",

"à","&agrace;",

"á","á",

"â","â",

"ã","ã",

"ä","ä",

"å","å",

"æ","æ",

"ç","ç",

"è","è",

"é","é",

"ê","ê",

"ë","ë",

"ì","ì",

"í","í",

"î","î",

"ï","ï",

"ð","ð",

"ñ","ñ",

"ò","ò",

"ó","ó",

"ô","ô",

"õ","õ",

"ö","ö",

"÷","÷",

"ø","ø",

"ù","ù",

"ú","ú",

"û","û",

"ü","ü",

"ý","ý",

"þ","þ",

"ÿ","ÿ");

while (list($a,$B) = each($array)){

  $txt = str_replace($a,$b,$txt);

 

  }

return $txt;

}

ou on se sert de la doc ;)

$txt = htmlentities($txt);

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

Super anonymous,

figures toi que je me suis servi de la doc!

et que j'ai utilisé le code ci-dessous, je testais en insérant

des caracteres spéciaux "" & "" et avec html entities rien a faire il me retournait pas le bon code, je crois avoir remarqué le meme pb avec certains

caracteres que j'ai mis en plus dans le filtre car ca me faisait fumer le cerveau à la longue. J'ai donc fait un hybride des deux, pour certains caracteres!

merci en tout cas, ta liste des caracteres, je la mets de coté :)

$letexte = htmlentities( $letexte, ENT_NOQUOTES); 
 $transform = array    ("&nbsp;"=> " ","<"=> "<",">"=> ">","&#"=> "",
     ""=> "™", ""=> "€", ""=> "Œ", ""=> "œ",
     ""=> "ƒ", ""=> "", ""=> "", ""=> "Ÿ",
     ""=> "", "~"=> "~", "$"=> "$", );
    $letexte = strtr( $letexte, $transform );
    unset($transform);
    return $letexte;

Lien vers le commentaire
Partager sur d’autres sites

As tu essayé ceci :

<?php

$trans = get_html_translation_table(HTML_ENTITIES);

$str = "Hallo & <Frau> & Krämer";

$encoded = strtr($str, $trans);

?>

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

RE,

Oui j'avais essayé Anonymous, mais je vais refaire un test , de ton dernier code,

car j'avais l'esprit un peu saturé hier. C'est que je suis pas développeur à la base!

J'aurai une dernière requete à vous soumettre,

comment faire pour supprimer tous ces bous de code XXX etant des valeurs

qui peuvent , vous l'avez deviné "etre differentes".

<div class='cadre_XXX'><a href='XXXX'><img src='XXXX' height="XXX" width="XXX" alt=""/></a></div>

Je peux avoir d'autres div à ne pas supprimer, merci de votre aide, les hubiens.

Merci

Florent

Ps: j'espere ne pas abuser !

Lien vers le commentaire
Partager sur d’autres sites

1/ Tu n'abuses pas ;)

2/ peux tu réexpliquer ?

Dans ce code, que veux tu enlever exactement ?

<div class='cadre_XXX'><a href='XXXX'><img src='XXXX' height="XXX" width="XXX" alt=""/></a></div>

Les xxx peuvent etre différents, mais alors comment en reconnaitre un ? comment savoir celui que tu veux enlever de celui que tu ne veux pas enlever ?

Lien vers le commentaire
Partager sur d’autres sites

Anonymous,

1/merci

2/ je veux enlever toutes les lignes comme celle ci-dessous!

sachant que j'aurai des valeurs XXX qui peuvent changer. et d'autres div

mais avec des class differenst à ne pas supprimer !

donc tout ce qui sera formatter ainsi, je souhaite le supprimer!

<div class='cadre_XXX'><a href='XXXX'><img src='XXXX' height="XXX" width="XXX" alt=""/></a></div>

ce qui reveint surement a chercher identifier le div class & sa fermeture

et le supprimer avec tout le bloc entre les deux? c'est possible?

<div class='cadre_ "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<div>

Florent

Modifié par Lentreprenaute
Lien vers le commentaire
Partager sur d’autres sites

Fais bien attention que tous tes <div soient fermés par les bons </div.

Exemple :

<div1 texte <div2 suite </div

il manque un div, donc tout risque d'etre effacé. :(

Voilà, au plaisir ;)

Anonymus

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...