2015-02-23 8 views
0

Я хочу добавить переменную в preg_replace.Добавить переменную в preg_replace

для Ex: -

В этой blelow строке кода, я хочу, чтобы добавить $ текст вместо "SOMETEXT"

$text = "sometext"; 
$lineOfValue = preg_replace("/.*sometext[\"', ]*/", "", $line); 

Может ли один помочь мне?

+2

'$ lineOfValue = preg_replace ("/.*$ текст [\"»,] * /», "", $ строка);' Где проблема? ! – Rizier123

+0

Получение этой ошибки при добавлении как ваш ответ: Ошибка анализа: синтаксис er (T_ENCAPSED_AND_WHITESPACE), ожидая идентификатор (T_STRING) или переменную (T_VARIABLE) или номер (T_NUM_STRING) в D: \ xampp \ htdocs \ wordpresstest \ write.php в строке 12 –

+0

Затем просто соедините его: '$ lineOfValue = preg_replace ("/.*". $ text. "[\" ',] */"," ", $ line);'?! – Rizier123

ответ

1

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

Вместо переменный должен быть объединен в регулярное выражение следующим образом, чтобы избежать $ неправильной интерпретации:

$text = 'sometext'; 
$lineOfValue = preg_replace("/.*" . $text . "[\"', ]*/", "", $line); 

Кроме того - если ваш переменные $ текста может содержать любой символ, вы должны рассмотреть возможность использования preg_quote() сделать строка безопасна для использования в регулярном выражении:

$text = 'sometext'; 
$lineOfValue = preg_replace("/.*" . preg_quote($text, '/') . "[\"', ]*/", "", $line); 
+1

Выделение выражения также должно быть экранировано. –

+0

Хороший вызов - я отредактировал пример, чтобы показать использование необязательного второго параметра preg_quote() – jones

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