|
|
|
| как заменить строку вида [dbimg id="187" w="100" h="100"] примерно на следующее
<img src="dbimg.php?id=187&width=100&height=100"> ? | |
|
|
|
|
|
|
|
для: toproot
(28.12.2009 в 21:25)
| |
$str = '[dbimg id="187" w="100" h="100"]';
$str = preg_replace('|\[(\w+)\s+id="(\d+)"\s+w="(\d)+"\sh="(\d)+"\s*\]|', '<img src="\1.php?id=\2&width=\3&height=\4">', $str);
|
| |
|
|
|
|
|
|
|
для: big-trot
(28.12.2009 в 22:27)
| | Width и Height получаются равны 0.
и почему замена производится только из строки в кавычках, а если добавить свою переменную - нет, удивительно
$p_name = $_POST['page_name'];
$p_text = $_POST['content'];
$iid = $_GET['id'];
$p_text = str_replace("","<center>",$p_text);
$p_text = str_replace("","</center>",$p_text);
$str = ''.$p_text.'[dbimg id="32295" w="100" h="100"]';
$p_text = preg_replace('|\[(\w+)\s+id="(\d+)"\s+w="(\d)+"\sh="(\d)+"\s*\]|', '<img src="\1.php?id=\2&width=\3&height=\4">', $str);
|
| |
|
|
|
|
|
|
|
для: toproot
(28.12.2009 в 22:54)
| | Прошу прощение в опечатке
$str = preg_replace('|\[(\w+)\s+id="(\d+)"\s+w="(\d+)"\sh="(\d+)"\s*\]|', '<img src="\1.php?id=\2&width=\3&height=\4">', $str);
|
Не понял вопроса
почему замена производится только из строки в кавычках, а если добавить свою переменную - нет, удивительно | |
|
|
|
|
|
|
|
для: big-trot
(29.12.2009 в 00:03)
| | $str = "text [dbimg id="... заменяется, а $str = $my_text нет. Удивительно. Обычный $_POST . Обработан только str_replace. | |
|
|
|
|
|
|
|
для: toproot
(29.12.2009 в 02:24)
| | Пришлите пример вашей строки, которая не работает | |
|
|
|
|
|
|
|
для: big-trot
(29.12.2009 в 13:36)
| |
$p_text = $_POST['content'];
$p_text = preg_replace('|\[(\w+)\s+id="(\d+)"\s+w="(\d+)"\sh="(\d+)"\s*\]|', '<img src="\1.php?id=\2&width=\3&height=\4">', $p_text);
|
- Не заменяет вообще., хотя это обычный текст, и в нем есть [dbimg оно и остается.
$p_text = 'One two three [dbimg id="186" w="100" h="100"] five ';
$p_text = preg_replace('|\[(\w+)\s+id="(\d+)"\s+w="(\d+)"\sh="(\d+)"\s*\]|', '<img src="\1.php?id=\2&width=\3&height=\4">', $p_text);
|
- Заменяет.
Вообщем - в строчке все нормально, а если эту строчку из ПОСТ принять - уже не заменяет.
Я сам не пойму у же чего тоько не перепробывал. | |
|
|
|
|
|
|
|
|
для: Fractured#
(29.12.2009 в 14:27)
| | Поставил err_rep (e_all) . выдает кучу ошбок , но поповоду прег_реплейс ничо | |
|
|
|
|
|
|
|
для: toproot
(29.12.2009 в 16:44)
| | Не, ну банально сделать
и сравнить с этой литеральной (во!) константой нельзя? | |
|
|
|
|
|
|
|
для: Fractured#
(29.12.2009 в 16:54)
| |
echo $p_text;
$p_text = preg_replace('|\[(\w+)\s+id="(\d+)"\s+w="(\d+)"\sh="(\d+)"\s*\]|', '<img src="\1.php?id=\2&width=\3&height=\4">', $p_text);
echo $p_text;
|
результат :
the text. and image - [dbimg id=\"186\" w=\"100\" h=\"100\"]the text. and image - [dbimg id=\"186\" w=\"100\" h=\"100\"]
тоесть до и после - одно и тоже.
кстати, СТОП, а откуда экранирование, у меня в форме техтареа \ нет | |
|
|
|
|
|
|
|
для: Fractured#
(29.12.2009 в 16:54)
| | Как убрать экранирование ? или эсли оно так необходимо, какое регулярное выражение будет заменять вариант с обратными слешами перед "
ВСЕ НОРМАЛНО, УЖЕ ВСЕ ЗДЕЛАЛ. большое спасиБо | |
|
|
|