|
|
|
| Господа, помогите решить задачу на регулярках. Есть html код, в котором есть относительный ссылки вида href="/abcd/efg/?p=123". Вот задумалось мне поменять их на абсолютные, вставив домен — т.е. на href="http://www.mysite.com/abcd/efg/?p=123".
Как бы сделать задуманное?
Буду премного благодарен, если прокомментируете ответ, дабы попытаться понять как работает сабж.
Спасибо!
вот нашёл:
Выбрать все урлы в HTML странице, те которые не начинаются на http://, т.е. локальные:
preg_match_all("#\s(?:href|src|url)=(?:[\"\'])?(.*?)(?:[\"\'])?(?:[\s\>])#i", $buffer, $matches);
|
как бы сюда ещё замену прицепить? | |
|
|
|
|
|
|
|
для: Zilog
(04.06.2012 в 15:15)
| | Вобщем, методом научного тыка получилась вот такая конструкция:
$pattern = "#\s(?:href|url)=(?:[\"\'])?(\/.*?)(?:[\"\'])#i";
$page = preg_replace($pattern, ' href="http://www.mysite.ru$1"', $page);
|
Поправьте меня, если что не так :) | |
|
|
|
|
|
|
|
для: Zilog
(04.06.2012 в 19:39)
| |
<?
$link = "href=\"/abcd/efg/?p=123\"";
preg_replace("#href=\"(http://www\.mysite\.ru)?(.+?)\"#i","href=\"http://www.mysite.ru$2\"",$link);
preg_replace("#href=\"(.+?)\"#i","href=\"http://www.mysite.ru$1\"",$link); //только если относительные ссылки
?>
|
| |
|
|
|