// $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, совпадения с шаблоном))
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 написал(а):
ааа....
Спустя 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 всех правильней отображает страницы" ©