Aller au contenu

Sujets conseillés

Posté

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

Guest Hellway
Posté

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à :)

Posté

$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

Posté
Dan , ca ne le fait toujours pas!? merci quand meme

Une parenthèse mal placée... tu réessayes ? J'ai corrigé le code ... ;)

Posté

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

Guest Hellway
Posté (modifié)

$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
Posté

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.

Posté

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;

Posté

As tu essayé ceci :

<?php

$trans = get_html_translation_table(HTML_ENTITIES);

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

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

?>

Anonymus.

Posté

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 !

Posté

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 ?

Posté (modifié)

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
Posté

Ceci devrait marcher :

$text = eregi_replace("<div class='cadre_[^<>]*>.*</div>"," ",$text);

Anonymus.

Posté

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

Veuillez vous connecter pour commenter

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



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