[PHP] remplacer <? dans une chaine ?!

Résolu
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. 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)
    
    1. 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 ??
      1. Oui, < aussi est un caractère réservé.
        Il faut tout échapper :
        \<\?
    2. Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in /home5/p..

      :-) Quelqu'un va t il donc réussir ?
      1. 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 ??

        Discussions similaires

        Tv bloquée sur une chaîne

        7 réponses