[PHP] remplacer <? dans une chaine ?!

Résolu
fraid -  
 fraid -
Bonjour,
je cherche à afficher une ligne de code php colorés syntaxiquement avec highlight_string().
le problème c'est que ma ligne ne commence pas par <?, alors je le rajoute manuellement, puis j'aimerai l'enlever après l'appel de la fonction highlight, mais je n'y parviens pas, je suppose que c'est parce que ? fait parti des expressions régulières ? j'ai tenté avec preg_replace("<?", "", $var, 1) car j'aimerais le supprimer qu'une seule fois !

merci d'avance !

fred
A voir également:

4 réponses

R4f Messages postés 441 Date d'inscription   Statut Membre Dernière intervention   62
 
Tu devrais ajouter un backslash devant le point d'interrogation, car il a une signification spéciale dans la syntaxe des expressions régulières.
Backslash -> AltGr-8 :

preg_replace("<\?", "", $var, 1)
0
fraid
 
voici le message d'eereur que j'obtiens :

Warning: preg_replace() [function.preg-replace]: No ending matching delimiter '>' found in ... on line 254

merci de votre réponse, avez vous une idée ??
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Oui, < aussi est un caractère réservé.
Il faut tout échapper :
\<\?
0
fraid
 
Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in /home5/p..

:-) Quelqu'un va t il donc réussir ?
0
fraid
 
a priori j'ai trouvé une solution un peu bricolage mais bon,
comme c'est moi qui ajouté a chaque fois <? en début de ligne, ce code devrait avoir toujours la meme position,
je l'ai donc supprimé avec quelques $var[xx]=""; qui m'enlèvre mon < et ? et a priori ca marche...

merci à tous !
je ne sais pas comment mettre un sujet comme résolu ??
0