|
|
|
| На форуме не нашел, мне нужно регулярное выражение, способное с помощью preg_replace заменить все URL-адреса в тегах <A> атрибутах href на свой. Т.Е:
<?php
$text = " welcome to <a href=\"http://google.ru/?hl=UA\"> google ukraine </a> and <a href='http://google.ru/?hl=RU'> google russia </a> more text";
?>
|
Нужно заменить все ссылки, таким образом : вместо http://google.ru/?hl=ru получить http://www.phplab.org.ua/browser.php?url=http://google.ru/?hl=ru. Это нужно для создания типа прокси-сервера.
подскажите плиз, ато я ну никак с регулярками не дружу | |
|
|
|
|
|
|
|
для: toproot
(08.10.2009 в 23:34)
| | Можно поступить следующим образом
<?php
$text = " welcome to <a href=\"http://google.ru/?hl=UA\"> google ukraine </a> ".
"and <a href='http://google.ru/?hl=RU'> google russia </a> more text";
$pattern = "|<a[\s]+href=[\"']([^\"']+)[\"']|is";
$replace = "<a href='http://www.phplab.org.ua/browser.php?url=\\1'";
$text = preg_replace($pattern, $replace, $text);
echo $text;
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(09.10.2009 в 11:56)
| | Благодарю, работает. Возник по ходу еще один вопрос.
<?php
$geturl = $_GET['url']; // Адрес на котором находимся мы;
// Допустим он равен http://host/dir/index.html а ссылки на страницах без протокола, т.е просто _page.html?uri;
?>
|
Извлекаем из введеного GET URL, адрес без файла т.е http://host/dir/ .
Как можно заменить все ссылки <a href="page.html"> на <a href="http://host/dir/page.html"> ? | |
|
|
|
|
|
|
|
для: toproot
(09.10.2009 в 18:22)
| | Что-то не очень понятно, где и что заменяется... | |
|
|
|
|
|
|
|
для: cheops
(09.10.2009 в 20:40)
| | Ну как правило на страницах редко используют полные ссылки типа http://domain/dir/file.html а чеще всего используют просто /dir/file.html или file.htm. Браузер сам подставляет имя узла, протокол, и директории. Нужно подставить во все ссылки <a href="dir/page.html"> адрес узла, те : <a href="http://host/dir/page.html"> т.е http://host/dir/ + page.html | |
|
|
|
|
|
|
|
для: toproot
(10.10.2009 в 00:09)
| | вот только далеко не всегда браузер подставляет при этом базу из адреса открытой страницы.
В HTML база может быть (и нередко бывает) переназначена. | |
|
|
|
|
|
|
|
для: toproot
(10.10.2009 в 00:09)
| | В принципе вы можете извлечь текущий адрес сервера из переменной $_SERVER['SERVER_NAME'] или имеется в виду другая задача? | |
|
|
|
|
|
|
|
для: cheops
(10.10.2009 в 12:35)
| | Нет, это не подойдет, но я с пом. trim() выберу нужный адрес. Меня интересует регулярное выражение для добавления во все стоки <a href="page.php"> адреса сайта (я его извлеку сам) . заменить page.php на http://host/dir/page.php во всех ссылках. | |
|
|
|