|
|
|
| Подскажите как сделать.
Нужно дописать к началу ссылки $host_link(Например http://localhost), это я сделал, а как исключить ссылки которые начинаются с http:// или ftp://
т.е. например в данном случае
<a href="http://www.1.ru">1.ru</a>
<a href="www.2.ru">2.ru</a>
<a href="ftp://ftp.1.ru">ftp.1.ru</a>
должно получиться
<a href="http://www.1.ru">1.ru</a>
<a href="http://localhost/www.2.ru">2.ru</a>
<a href="ftp://ftp.1.ru">ftp.1.ru</a>
1 и 3 ссылка должна остаться неизменной, а к второй добавиться $host_link
$fnd = array ( "/(background|href|src)=\"(.*?)(\")/i" );
$replaceto = array ( "\\1=\"".$host_link."/\\2\"" );
$screen=preg_replace($fnd,$replaceto,$screen);
|
| |
|
|
|
|
|
|
|
для: yvpopov
(21.11.2006 в 14:12)
| | Здесь обычно прибегают к негативной опережающей проверке
$fnd = array ( "/(background|href|src)=\"(?!http)(.*?)(\")/i" );
$replaceto = array ( "\\1=\"".$host_link."/\\2\"" );
$screen=preg_replace($fnd,$replaceto,$screen);
|
| |
|
|
|
|
|
|
|
для: cheops
(21.11.2006 в 15:39)
| | Я вообще в регулярных выражения новичек, второй день ими занимаюсь...
и я пришел вот к такому решению Вы могли-бы пояснить...как будет правильнее и какие есть нюансы...
$fnd = array ( "/(background|href|src)=\"([^(http:\/\/|ftp:\/\/)])(.*?)(\")/i" );
$replaceto = array ( "\\1=\"".$host_link."/\\2\\3\"" );
$screen=preg_replace($fnd,$replaceto,$screen);
|
| |
|
|
|
|
|
|
|
для: yvpopov
(21.11.2006 в 16:43)
| | Если решение работает, его можно смело испльзовать. | |
|
|
|