Comment puis-je convertir
preg_replace... ?
3 Réponses :
Délimiteurs, ajoutez tout caractère à début et à la fin de l'expression, dans ce cas, et par tradition, le caractère ' regex est lent, utilisez ceci.
$ Extension = substrateur ($ imgname, strros ($ imgname, '.')); p> prg_replace (' /.*\.(.*)$/ ', " 1 ", $ imgfile); Code> La regex n'est pas très bonne, mieux d'utiliser Strrpos et de prendre des substrats (). P>
Je sais mais avoir ce problème; Preg_replace () [Fonction.Prec-Remplacer]: modificateur inconnu '$' in c: \ wamp \ www ..
Oui, mon mauvais, aussi l'édition semble détruire l'expression. Mieux d'utiliser un substrat () dans ce cas. Vous pouvez également utiliser Preg_Match.
Vous pouvez échapper à votre code avec des backticks (voir Stackoverflow.com/editing-help ). La solution $ semble bonne.
preg_replace("/.*\.(.*)$/", "\\1", "foo.jpg") I don't know why PHP requires the / delimiters. The only reason Perl, JS, etc. have them is that they allow regex literals, which PHP doesn't.
C'est parce qu'ils choisissent d'utiliser la chaîne unique pour fournir à la fois le modificateur et le motif de regex. "/ [a-z] / i" code>.
Voir php.net/manual/fr/regexp.reference.delimiters.php .. Par exemple, $ a = 'string / with / slashes'; $ b = preg_replace ('# / avec / #' ',' -without- ', $ a); code> est valide, définit
$ b code> à
string-sans-slashes < / CODE> Et vous n'avez pas à échapper au
/
Preg_replace code>.
Vous devez connaître 4 choses principales aux modèles Port Ereg à Pregg: strong> p>
Délimiteur d'échappement strong> S'il fait partie du motif: eregi fort> (correspondance insensible à la casse): valeurs ASCII forts>: En Ereg, si vous utilisez le numéro dans le motif, il est
supposé que vous vous référez à l'ASCII d'un personnage. Mais en
PREG, le nombre n'est pas traité comme valeur ASCII. Donc, si votre modèle
contenir la valeur ASCII dans l'expression EREG (par exemple: nouvelle ligne,
Onglets, etc.) puis le convertir en hexadecimal et le préfixer avec \ x. J'espère que cela aidera. P>
Il existe un intégré pour échapper à une chaîne de regex entre les délimiteurs PHP.net/Manual/ fr / fonction.preg-ciote.php
'motif' => '/ motif /' p> p> l>
'patt / ern' =>
'/ patt \ / ern /' code>
Atteignez-le de manière programmatique de manière programmatique:
$ ereg_pattern = '
$ PREG_PATTERN = '/' .ADDCSLASHES ($ EREG_PATTERN, '/'). '/'; code> p> li>
'modèle' => '/ motif / i' code> donc, si
Vous utilisez une fonction Eregi pour cassette insidiante, il suffit d'ajouter
'Je' à la fin du nouveau motif ('/ motif /'). p> li>
Exemple: 9 (onglet) devient \ x9 ou utilisez également \ T. CODE> P> LI>
ol>