[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_replace & urlencode
SerginhoLD


// $str - текст где есть ссылки

$s = '/\[url\=(.*?)\](.*?)\[\/url\]/is';

$r = '<a href="http://'.$_SERVER['SERVER_NAME'].'/link.php?link='.urlencode("$1").'">$2</a>';
// вот здесь функция urlencode обрабатывает именно два символа: $ и 1. Как туда загнать то, что якобы лежит в $1 ?
// с $1 точно все в порядке, т.к. если написать так '<a href="http://'.$_SERVER['SERVER_NAME'].'/link.php?link=$1">$2</a>', то нормально выводится.


$str = preg_replace ($s, $r, $str);





Спустя 2 минуты (27.04.2011 - 20:01) Игорь_Vasinsky написал(а):
кто научил такие переменные объявлять? $1 и $2

Спустя 2 минуты, 15 секунд (27.04.2011 - 20:03) liw написал(а):
Должно помочь
http://www.php.net/manual/en/function.preg...ce-callback.php

Игорь_Vasinsky
Эти переменные - backreference, совпадения с шаблоном))

Спустя 15 минут, 24 секунды (27.04.2011 - 20:18) SerginhoLD написал(а):
liw, спс


// вот оно! :)

function my_urlencode_preg_replace($a)
{
return '<a href="http://'.$_SERVER['SERVER_NAME'].'/link.php?link='.urlencode($a[1]).'">'.$a[2].'</a>';
}
$s = '/\[url\=(.*?)\](.*?)\[\/url\]/is';
$r = 'my_urlencode_preg_replace';
$str = preg_replace_callback ($s, $r, $str);

Спустя 12 минут (27.04.2011 - 20:30) Игорь_Vasinsky написал(а):
ааа.... biggrin.gif

Спустя 1 час, 16 минут, 57 секунд (27.04.2011 - 21:47) SlavaFr написал(а):
Цитата (Игорь_Vasinsky @ 27.04.2011 - 17:01)
кто научил такие переменные объявлять? $1 и $2

так делать можно, так как это тоже самое что \1 или \2
а вот в регулярном выражении возможно имеются проблемы.
@SerginhoLD не разяснил что он своим регулярным выражением хочет добится, какие стринги и как он собирается парсить мне лично не понятно.

Спустя 9 дней, 12 часов, 49 минут, 13 секунд (7.05.2011 - 10:37) Dr.Mars написал(а):
$s = '/\[url\=(.*?)\](.*?)\[\/url\]/eis';

$r = '<a href="http://'.$_SERVER['SERVER_NAME'].'/link.php?link=+urlencode("$1")+">$2</a>';

$str = preg_replace ($s, $r, $str);


_____________
"internet explorer всех правильней отображает страницы" ©
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.