Düzenli ifade bayrakları

2 Cevap php

Birisi 'e' bayrak ne açıklamak, ya da yok yere beni bağlayabilir miyim? Google üzerinden bir şey bulamadı.

Örnek:

preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);

2 Cevap

e (PREG_REPLACE_EVAL)

If this modifier is set, preg_replace() does normal substitution of backreferences in the replacement string, evaluates it as PHP code, and uses the result for replacing the search string. Single quotes, double quotes, backslashes () and NULL chars will be escaped by backslashes in substituted backreferences. Only preg_replace() uses this modifier; it is ignored by other PCRE functions.

http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

Yani bu örnek verilmiştir:

preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str);

Tüm maç için yedek b maç geçtiğinde () döndürür ne search_foo_term olacak? .

E bayrağı çoğunlukla güvenlik nedeniyle, önerilmemektedir. preg_replace_callback yerine kullanın.