2015-07-29 4 views
1

Я хочу заменить строку "<Reason/>" пустым пространством или просто ничего.Как заменить строку тегами

Я пробовал str_replace('<Reason/>','',$string), но он не принимает метки. Я пробовал str_preg('<Reason/>','', $string), но он оставляет теги "<>". Я пробовал str_preg('/^<Reason/>/','', $string), но он дает мне исключение с неизвестным модификатором '>'.

Что можно сделать, чтобы удалить всю строку вместе с тегами "<Reason/>"?

+1

Вы пробовали Ускользающий <>, т.е. str_replace ('\ ',' ', $ string), также если вы включаете «/», вам нужно избежать закрытого «/», то есть str_replace ('/^ \ /',' ', $ string); – Severun

+0

Да, как и большинство двигателей регулярных выражений, замена не производится на месте. Фактически это временное, которое создается внутренне посредством добавления несоответствующих частей строки с соответствующей заменой. Когда это будет сделано, временная копия будет скопирована в LHS через оператор присваивания. – sln

ответ

2

Возможно, вы забыли вернуть результат исходной переменной.

Следующий код работает:

$string = str_replace('<Reason/>','',$string); 

Полный пример:

$string = '<Reason/>lalala<Reason/>'; 
$string = str_replace('<Reason/>','',$string); 
echo $string; 

Выход

lalala 
1

для случая независим, использовать

str_ireplace()

вместо `

str_replace()

`