|
|
|
| Такая проблема. Использую cURL захожу на страницу, а там картинки и ссылки с относительными путями! Естественно, ни те, ни другие не работают. Ссылки-то мне не очень нужны, а вот чтобы отображались картинки обязательно НУЖНО!
Как это сделать? | |
|
|
|
|
|
|
|
для: ddhvvn
(16.12.2006 в 21:54)
| | регэкспом заменяй ссылки на полные | |
|
|
|
|
|
|
|
для: ddhvvn
(16.12.2006 в 21:54)
| | Прикрепите кусок с HTML кодом (в виде файла) с ссылками, которые необходимо заменить, и сообщите какой вид должны принять ссылки в результате? | |
|
|
|
|
|
|
|
для: cheops
(17.12.2006 в 00:27)
| | Кусок сейчас прикрепить не могу, но могу привести пример:
я через cURL зашел, скажем, на сайт www.my_site.ru. Там есть картинки, имеющая адрес images/picture1.gif и ссылка link2.php. То есть и ссылка, и картинка имеют относительные пути. А мне нужно, чтобы они были в формате соответственно www.my_site.ru/images/picture1.gif и www.my_site.ru/link2.php.
Надеюсь понятно объяснил :-) | |
|
|
|
|
|
|
|
для: ddhvvn
(17.12.2006 в 09:37)
| | Для замены путей картинок вот что использую
<?php
preg_replace("|<img(.*) src=(\")?(.*)(\")?(.*)>|i", "<img\\1 src=\"$url\\3\"\\5>", $buf);
//url - содержит хост, например, http://www.my_pict.ru
?>
|
Но проблема в том, что если путь картинки уже задан абсолютно, например, <img src=http://www.my_pict.ru/img/pict1.gif>, то после замены получается <img src=http://www.my_pic.ru/http://www.my_pict.ru/img/pict1.gif>
Как мне изменить рег.выражение, чтобы оно добавляло $url только, если в src это значение $url еще не содержится? | |
|
|
|
|
|
|
|
для: ddhvvn
(17.12.2006 в 10:42)
| | В этом случае вместо функции preg_replace() используется функция preg_replace_callback(), которая принимает одним из аргументов фукнцию обратного вызова - в этой функции можно проверить (в том числе и при помощи ещё одного регулярного выражения) какого вида URL был найден и в зависимости от его формата - заменять его или нет... Пример использования фукнции preg_replace_callback() вы сможете найти по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=13619. | |
|
|
|
|
|
|
|
для: ddhvvn
(17.12.2006 в 10:42)
| | Проявил смекалку и решил задачу НАМНОГО проще :)). Вместо всяких "вымудрений", которые описывал выше, просто в блок <head></head> добавил тег <base> равный $url и ВСЕ! Вроде пока все работает.
P.S.: все равно хеопсу как всегда ОГРОМНОЕ спасибо :-) | |
|
|
|