[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Замена ссылок
DmitryOpalev
У меня сложная ситуация, хотя бы потому что я плохо знаю регулярки. На сайте много ссылок (в body) типа <a href='/tyda'>Туда</a>
Мне же надо найти их и заменить на <a href='http://site.ru/tyda'>Туда</a>
Изменить надо именно исходный код. Помогите, как такое сделать?



Спустя 7 минут, 32 секунды (12.04.2011 - 21:52) neadekvat написал(а):
Пройтись по файлам и заменить href='/ на href='http://site.ru/ редактором.

Спустя 51 секунда (12.04.2011 - 21:53) DmitryOpalev написал(а):
Надо программно

Спустя 1 минута, 18 секунд (12.04.2011 - 21:54) neadekvat написал(а):
Задача поставлена неясно.
Где находится этот код? Что понимает под "исходным"? Это парсер или разовая задача для своего сайта?

Спустя 10 минут, 48 секунд (12.04.2011 - 22:05) DmitryOpalev написал(а):
Я беру исходный код страницы (file_get_contents, получается html).
Потом мне надо изменить ссылки так как я писал.
Или не понятно? unsure.gif

Спустя 9 минут, 6 секунд (12.04.2011 - 22:14) Winston написал(а):
Цитата (DmitryOpalev @ 12.04.2011 - 20:45)
<a href='/tyda'>Туда</a>

Цитата (DmitryOpalev @ 12.04.2011 - 20:45)
<a href='http://site.ru/tyda'>Туда</a>

То есть у тебя относительные ссылки? А тебе нужно заменить на абсолютные ?

Спустя 26 минут, 3 секунды (12.04.2011 - 22:40) DmitryOpalev написал(а):
Ну они как бы и так абсолютные biggrin.gif
Цитата
<a href='/tyda'>Туда</a>

Сработает ведь как абсолютный путь.
Мне просто надо приделать http://site.ru в начале

Спустя 12 минут, 25 секунд (12.04.2011 - 22:53) Winston написал(а):
Относительный
Цитата (PHPprogramer @ 12.04.2011 - 21:14)
/tyda

Абсолютный
Цитата (PHPprogramer @ 12.04.2011 - 21:14)
http://site.ru/tyda


А попробовать можно так:
preg_replace("/<a href=(\"|')([-\w&\/]+)\\1>([a-zа-яё]+)<\/a>/iu", "<a href='http://site.ru\\2'>\\3</a>", $str);

([-\w&amp;\/]+)
Форум вырезает &amp; :)

Спустя 1 час, 29 минут, 39 секунд (13.04.2011 - 00:22) Invis1ble написал(а):
DmitryOpalev
$content = preg_replace("#(.*<a href=(\"|'))(.*\\2.*>.*</a>.*)#suiU", '$1http://host$3', $content);


_____________
Курс валют
Быстрый ответ:

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