2011-07-15 3 views

ответ

2

Вы должны иметь в виду, что первый аргумент preg_replace является образцом RegEx, так что вы не можете передать просто любая строка к нему.

Прежде всего, необходимо, чтобы избежать всех регулярных выражений символов с функцией preg_quote

Try:

$a = "abc/def"; 
$b = "abc/def/ghi/abc/def"; 

$pattern = preg_quote($a, '/'); // second argument allows us to escape delimiter chars, too 

$x = preg_replace("/$pattern/", '', $b, 1); 
+0

спасибо за помощь. но не работает для меня. что для меня работает str_replace "/" для другой строки, которая работает с preg_replace ex. (":"). и str_replace остальная часть результата снова вернется к «/». – njai

+0

Извините, я забыл приложить выражение в разделителях «/». Исправлено. В любом случае вы должны использовать preg_quote при обработке переменной как шаблона регулярного выражения. Другой способ, которым вам понадобится str_replace каждый специальный символ, например.() [] | и так далее. preg_quote делает это для вас. – Hnatt

+0

еще нет работа. – njai

Смежные вопросы