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

  FORUM HardWare.fr
  Programmation
  PHP

  Supprimer le caractère & dans une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Supprimer le caractère & dans une chaine

n°2418934
wisefun77
Vivre ses rêves
Posté le 07-06-2022 à 18:46:47  profilanswer
 

Bonjour,  
J'ai ce code pour trier les balises qui fonctionne à merveille.

Code :
  1. <?PHP
  2. function triBalises()
  3. {
  4.     $baliseStart ='4';
  5.      $baliseEnd ='4';
  6.     $nature = $_SESSION['Balises2'];
  7.     echo $_SESSION['Balises2'].'<br> TRIBALISE <br><br>';
  8.     // Traitement du début de la chaine.
  9.     $pos = strpos($nature, $baliseStart);
  10.     $_SESSION['BalisesStart'] = substr($nature,0,$pos);
  11.     echo 'BaliseStart ==>'.$_SESSION['BalisesStart'].'<br> TRI BALISESTART <br><br>' ;
  12.  
  13. //Traitement de fin de chaine.
  14. $nature_inversee = strrev($nature); //on inverse la string
  15. $baliseEnd ='4';
  16. $pos = strpos($nature_inversee, $baliseEnd); //position du caractère 4 dans la string inversée
  17. $_SESSION['BalisesEnd'] = substr($nature_inversee,0, $pos);
  18. $_SESSION['BalisesEnd'] = strrev( $_SESSION['BalisesEnd']);
  19. echo 'BaliseEnd ==>'.$_SESSION['BalisesEnd'].'<br> TRI BALISES END <br><br>'; //Doit donner la fin de la chaine des balises.
  20. // Concaténation des chaines.
  21. $_SESSION['BaliseNew'] = $_SESSION['BalisesStart']. $_SESSION['Balises3'].$_SESSION['Balises4'].$_SESSION['BalisesEnd'] ;
  22. $_SESSION["BalisesGeneral"] = $_SESSION["BaliseNew"];
  23. echo 'BaliseTotale ===>'.$_SESSION['BalisesGeneral'].'<br> tri balises';
  24. }
  25.     ?>


Seulement si dans la balises le chiffre 4 existe, cela coupe la balise ce qui est normal.
J'ai donc remplacé la valeur de $page par &.
Mais je ne sait comment lui dire de retirer le & dans le preg_replace.
la chaine est bien trié mais il reste le &5

Code :
  1. [ADC_START][SDP][GUICHET][DEM][USER_CMDB_DIF_NON]&5[DEM_PDT_PCF < AE_PC9[RDV_NON][RDV_BAL][RSDP_NC][COMMENT/NO][REGUL_NON][DEM_PDT_PCF < AE_PC444444444>< TPX_1>][ba5e0bf9][7/06/2022 18:40:53][Version_2.02][ADC_END]


Voici le code pour preg_replace.

Code :
  1. // Traitement des chiffres.
  2. $chaineAvecChiffres = $_SESSION['BalisesGeneral'];
  3. $chaineSansChiffres = preg_replace('/\]\d+\\[/', '][', $chaineAvecChiffres);
  4. $_SESSION["BalisesGeneral"] = $chaineSansChiffres;
  5. echo $_SESSION["Balises2"].'<br>Balises2<br><br>'.$_SESSION["Balises3"].'<br>Balises3<br><br>'.$_SESSION["Balises4"].'<br>Balises4<br><br>'.$_SESSION["BalisesGeneral"].'<br>BaliseGénérale<br><br>'."IF sans chiffres'";


Merci


---------------
De retour au PHP après plus de 12 ans d'absence pour retrouver un emploi.
mood
Publicité
Posté le 07-06-2022 à 18:46:47  profilanswer
 

n°2418937
wisefun77
Vivre ses rêves
Posté le 07-06-2022 à 18:59:24  profilanswer
 

Bonjour,  
J'ai rajouté ce code juste après le premier preg_replace

Code :
  1. // Traitement des caractères.
  2. $chaineAvecCaractere = $_SESSION['BalisesGeneral'];
  3. $chaineSansCaractere = preg_replace('/\]\&+\[/', '][', $chaineAvecCaractere);
  4. $_SESSION["BalisesGeneral"] = $chaineSansCaractere;
  5. echo $_SESSION["Balises2"].'<br><br>'.$_SESSION["Balises3"].'<br><br>'.$_SESSION["Balises4"].'<br><br>'.$_SESSION["BalisesGeneral"].'<br><br>'."IF sans Caractere'";


 
Est-il possible de faire un seul code?
Merci


---------------
De retour au PHP après plus de 12 ans d'absence pour retrouver un emploi.
n°2419111
MaybeEijOr​Not
but someone at least
Posté le 09-06-2022 à 18:24:11  profilanswer
 

Bonjour,
 
En l'état la demande est trop brouillon. Il serait bien d'exprimer ce que tu souhaites faire, de quoi tu pars, à quoi tu veux arriver, dans quel contexte, etc.
Tu nous parles "$page" mais cette variable n'apparait nulle part dans ton code, de même on retrouve $_SESSION["Balises3"] et $_SESSION["Balises4"] on ne sait pas d'où ça sort.
Le seul truc que je comprends de ton code c'est que tu gardes le début d'un texte jusqu'à un délimiteur, ainsi que la fin d'un texte qui va d'un autre (et encore je suppose que c'est un autre) délimiteur jusqu'à la fin.
Tu nous parles de tri mais je ne vois pas la moindre fonction de tri...


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2419122
rufo
Pas me confondre avec Lycos!
Posté le 09-06-2022 à 22:02:28  profilanswer
 

Petite remarque en passant : avoir des commentaires de ce genre, ça ne sert à rien.
//on inverse la string
// Concaténation des chaines.
 
C'est du paraphrasage du code, ça n'apporte rien de plus comme info. Par contre, expliquer pourquoi on doit inverser la chaîne ou pourquoi on concatène, là, ça serait utile. Bref, en commentaires, on aurait une description des étapes de l'algorithme, ça serait bien mieux.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

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

  Supprimer le caractère & dans une chaine

 

Sujets relatifs
Supprimer une partie d'une chaine de caractère.Supprimer une ligne contenant une chaine de caractère
Supprimer le premier caractère d'une chainesupprimer chaine de caractere dans un nom de fichier
Supprimer un caractère dans une chaînesupprimer tous les expaces avant et apres une chaine de caractere
Supprimer le dernier caractere d'une chaineSupprimer une chaine de caractère ds plusieurs fichiers .txt
[PHP] Supprimer le dernier caractère d'une chaine[PERL] supprimer un caractere d'une chaine
Plus de sujets relatifs à : Supprimer le caractère & dans une chaine


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