|
|
|
| [ пошел | ушлепал ]
$out_bracket = "[ пошел | ушлепал ]";
$b['word'] = "111";
$txt = preg_replace("#".$out_bracket."#is",$b['word'],$full_text);
|
как это грамотно сделать надо заменить весь блок .. на то что мне надо ( Блоки могу встречатся много раз) . | |
|
|
|
|
|
|
|
для: sidPR
(05.02.2008 в 17:45)
| | А почему не str_replace() ?
Не работает из-за спец-символов "[ ] |". Их надо экранировать с помощью, например, preg_quote(). | |
|
|
|
|
|
|
|
для: kasmanaft
(05.02.2008 в 17:56)
| | Непомагает preg_quote() | |
|
|
|
|
|
|
|
для: sidPR
(05.02.2008 в 18:01)
| | А как используете?
<?php
$out_bracket = "[ пошел | ушлепал ]";
$b['word'] = "111";
$full_text = "лалала [ пошел | ушлепал ] лалала [ пошел | ушлепал ] лалала";
echo $txt = preg_replace("#".preg_quote($out_bracket)."#is",$b['word'],$full_text);
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(05.02.2008 в 18:07)
| | да некоторые заменяет некоторые оставляет ... :( | |
|
|
|
|
|
|
|
для: sidPR
(05.02.2008 в 18:18)
| |
$txt = str_replace("".$out_bracket[0][$n]."",$b['word'],$full_text);
|
Тоже не помагает ... :( не все строки обрабатывает | |
|
|
|
|
|
|
|
для: sidPR
(05.02.2008 в 18:25)
| | сори все нормально .. обшика в алгоритме была .. изза этого изменялось только последние блоки! | |
|
|
|
|
|
|
|
для: sidPR
(05.02.2008 в 18:27)
| | подскажите пожалуйста почему preg_match_all("/\[(.+?)\]/", $full_text, $out_bracket);
если в $full_text содержится текст с ковычками на выдаче $out_bracket экранирует автоматом их ? как этого избежать ? | |
|
|
|
|
|
|
|
для: sidPR
(06.02.2008 в 13:41)
| | stripslashes() помогло но я не уверен что это правильный выход ? | |
|
|
|
|
|
|
|
для: sidPR
(06.02.2008 в 14:01)
| | Обычно кавычки экранируются, если добавлять модификатор "e". А так - ни разу не сталкивался.. | |
|
|
|