Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
609 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Eliminer des exemples autour d'un caractère précis

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Eliminer des exemples autour d'un caractère précis

n°233130
omega2
Posté le 23-10-2002 à 17:08:09  profilanswer
 

Pour mon site, j'utilises un système de template qui lit un fichier contenant un modèle d'affichage.
Je découpes ensuite ce modèle en plusieurs partis distinctes que je mets dans plusieurs variables.
Le problème, c'est que dans plusieurs de ces variables, je me retrouves avec un grand nombre d'espaces qui n'auront aucune incidence dans l'affichage final. Je voudrais donc les éliminé.
 
Par exemple, voilà une des variables que j'obtiens après la division du fichier en plusieurs parties :
 

Code :
  1. $mod_page="<HTML>
  2.   <HEAD>
  3.     <#REFRESH>
  4.    
  5.   </HEAD>
  6.   <BODY bgcolor=\"#336698\" link=\"#2222FF\" vlink=\"#2222FF\">
  7.     <CENTER>
  8.     <#ZONE1>
  9.     </CENTER>
  10.   </BODY>
  11. </HTML>
  12. ";


 
Ce que je voudrais obtenir, c'est
 
$mod_page="<HTML><HEAD><#REFRESH></HEAD><BODY bgcolor=\"#336698\" link=\"#2222FF\" vlink=\"#2222FF\"><CENTER><#ZONE1></CENTER></BODY></HTML>";
 
Bref, je voudrais éliminer les retours à la ligne et les espaces qui les entourent sans pour autant les enlever du modèle de départ (plus facile à débuguer un nouveau modèle quand on a une présentation hiérarchique).
 
Merci d'avance.
 
PS : L'exemple que j'ai utilisé la provient d'un des fichiers .php3 créé automatiquement a partir d'un des modèles pour remplacer une lecture de fichier + traitement par un include.

mood
Publicité
Posté le 23-10-2002 à 17:08:09  profilanswer
 

n°233141
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-10-2002 à 17:14:39  profilanswer
 

Une solution rapide qui me vient à l'esprit c'est : tu fais un explode() sur les \n puis tu trimes chaque token. En gros :

Code :
  1. $tableau = explode("\n", $mod_page);
  2. foreach($tableau as $mot)
  3. {
  4.   $new_mod_page = $new_mod_page.trim($mot);
  5. }


Message édité par Taiche le 23-10-2002 à 17:15:02

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°233142
Toucouch
Posté le 23-10-2002 à 17:14:40  profilanswer
 

Pô compris... Tu veux ôter les retours à la ligne tout en les conservant pour que ce soit plus lisible? :??:

n°233143
ethernal
Chercheur de vérité...
Posté le 23-10-2002 à 17:15:55  profilanswer
 

un exemple (edit... oups trop tard :D):
$string= explode('\n', $tring);
for ($i=0, $max=count($string); $i++){
  $return_string.= trim($string[$i]);
}
 
un autre:
$string= str_replace(' ','',$string);
$string= str_replace('chr(10),'',$string);


Message édité par ethernal le 23-10-2002 à 17:16:25

---------------
...oups kernel error...
n°233146
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 23-10-2002 à 17:20:35  profilanswer
 

Huhu :D Copain, ethernal :)


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°233163
omega2
Posté le 23-10-2002 à 17:45:16  profilanswer
 

Toucouch a écrit a écrit :

Pô compris... Tu veux ôter les retours à la ligne tout en les conservant pour que ce soit plus lisible? :??:



Je veux les garder au niveau du modèle mais ne plus les avoir au niveau du navigateur.
Ainsi, en mode normal, la récupération des pages est moins longues ce qui joue quand on a un simple modem et en mode débuguage d'un modèle je pourais toujours avoir la page avec tout les espaces (effacement ou non effacement des espaces en fonction d'une variable) pour avoir une présentation du code résultat facile à lire.
 
taiche > Ca m'a l'air une très bonne idée ça, j'avais pas pensé à utiliser la fonction exclude. :)
 
ethernal > Le second exemple marchera pas, j'obtiendrais

Code :
  1. mod_page="<HTML><HEAD><#REFRESH></HEAD><BODYbgcolor=\"#336698\"link=\"#2222FF\"vlink=\"#2222FF\"><CENTER><#ZONE1></CENTER></BODY></HTML>";


 
J'ai mis en gras, la partie qui poserait problème (je penses que la balise BODYbgcolor ne serait pas compris comme il faut par un navigateur)
 
Bon, après lecture des trois proposition, je vais utiliser la première d'ethernal vu qu'elle marche surement très bien et qu'elle est pas limité à php4.

n°233297
ethernal
Chercheur de vérité...
Posté le 23-10-2002 à 21:13:45  profilanswer
 

un truc que je comprends pas :
comment ça se fait que tu travailles avec des templates et que tu as un $mod_page="html blabla";
 
c'est après chargement du template ?
ou bien ce sont tes templates?


---------------
...oups kernel error...
n°233424
omega2
Posté le 23-10-2002 à 23:31:36  profilanswer
 

ethernal a écrit a écrit :

un truc que je comprends pas :
comment ça se fait que tu travailles avec des templates et que tu as un $mod_page="html blabla";
 
c'est après chargement du template ?
ou bien ce sont tes templates?



C'est après chargement du template.
Comme je trouvais le traitement trop long, j'ai modifié le système pour sauter l'étape de chargement/prétraitement du modèle en incluant directement les variables avec les bonnes valeurs dans le source.
Mais bon, ca reste quand même un système de template (pour ce que j'ai compris aux templates. ;) )

n°233444
ethernal
Chercheur de vérité...
Posté le 23-10-2002 à 23:48:32  profilanswer
 

ok :) merci pour la petite explication  :hello:


---------------
...oups kernel error...

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Eliminer des exemples autour d'un caractère précis

 

Sujets relatifs
Transformation d'hexa en caractère dans une lecture de fichierCopier un caractère dans une chaine de caractères
renverser une chaine de caractere[C] Je recherche une fonction remplaçant un caractère par un autre
Extraire un nom de fichier d'une chaine de caractère[ SHELL ] comment intercepter le caractere * [ resolu ]
Problème d'affichage d'un caractère à l'écran[ACCESS] supperssion chaine de caractère
premier caractere d'une chaineCaractère d'échappment dans SQL ?
Plus de sujets relatifs à : Eliminer des exemples autour d'un caractère précis


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR