Rechercher : dans
Par :

[PHP] remplacer <? dans une chaine ?!

Dernière réponse le 17 avr 2008 à 16:10:57 fraid, le 17 avr 2008 à 14:33:17 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [PHP] remplacer  » dans :
Les guillemets, apostrophes et les chaînes VoirComment jouer avec les guillemets et les apostrophes dans les chaînes 1. Préambule 2. Éviter une coupure dans la chaîne 3. Ajouter un guillemet dans la chaîne 3.1 Avec l'apostrophe 3.2 Avec l'ASCII 3.3 Directement 3.3.1 Méthode...
PHP - Concaténation VoirPHP permet de concaténer des chaînes de caractères grâce à l'opérateur "." : $concatenation= $a . $b; Ou encore pour affecter, dans la variable $a, la valeur de la concaténation de $a et de $b : $a.=$b; Pour concaténer des chaînes et des...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
Javascript - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractère Une chaîne de caractère est, comme son nom l'indique, une suite de caractères. On la représente par la suite de caractères encadrée par des guillemets simples (') ou doubles ("), sachant que les deux types de...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Linux - L'éditeur Vi VoirIntroduction à Vi Vi est un des éditeurs de texte les plus populaires sous les systèmes de type Unix (avec Emacs et pico) malgré son ergonomie très limitée. Sous Linux il existe une version libre de Vi appelée Vim (Vi Improved). Vi (prononcez...

1

R4f, le 17 avr 2008 à 15:10:30

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)

Répondre à R4f

2

fraid, le 17 avr 2008 à 15:29:57

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 ??

Répondre à fraid

3

Reivax962, le 17 avr 2008 à 15:45:01

Oui, < aussi est un caractère réservé.
Il faut tout échapper :
\<\?

Répondre à Reivax962

4

fraid, le 17 avr 2008 à 15:50:51

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash in /home5/p..

:-) Quelqu'un va t il donc réussir ?

Répondre à fraid

5

 fraid, le 17 avr 2008 à 16:10:57

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 ??

Répondre à fraid
Collection CommentÇaMarche.net