регулярные выражения

Shiz

Новичок
регулярные выражения

помогите заменить

<a href="http://site.com">

на

<a href="http://another-site.com?http://site.com">

пробывал делать str_replac'ом но он заменял все вхождения href=" во всех тегах
 

BEZZ

Новичок
это не наглость - это решение твоей задачи!
используй гугль и ман на php.net
 

WP

^_^
PHP:
$string = '1 <a href="http://site.com"> 2';
$result = preg_replace_callback('~(<a)(.*?)(>)~',create_function('$m',
'return $m[1].preg_replace_callback(\'~(href=)(["\\\']?)(.*?)\\\\2~\',
create_function(\'$m\',\'return \\\'href=\\\'.$m[2].
\\\'http://another-site.com/?\\\'.$m[3].$m[2];\'),$m[2]).$m[3];'),$string);
echo $result;
// 1 <a href="http://another-site.com/?[url]http://site.com[/url]"> 2
Сорри за такой запутанный код, я устал сильно за день, писал практически с закрытыми глазами. Разберешься кароче.
 

uliss

Новичок
PHP:
preg_replace('|<a href="(.+)">|','<a href="http://another-site.com?$1">|' , $str);
не проще?
 

SelenIT

IT-лунатик :)
Поддерживаю ulissа. Ни к чему тут callback, тем более дважды :)
PHP:
preg_replace('|<a([^>]+)href="(.+?)"|','<a$1href="http://another-site.com?$2"|' , $str);
Доработка регулярки для учета одинарных кавычек вместо двойных либо их отсутствия тоже не архисложная задача - имхо, в самый раз для учебных целей...
 
Сверху