[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
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. R4f Messages postés 441 Statut Membre 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
  2. 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
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Oui, < aussi est un caractère réservé.
      Il faut tout échapper :
      \<\?
      0
  3. 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
  4. 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