Как добавить префикс перед внешним URL автоматически в PHP
Я хочу открыть каждый внешний URL-адрес на новой странице путем перенаправления.
Эти внешние ссылки будут показаны на моей странице
www.pppexample.com
www.pp2example.com
Я хочу открыть каждый внешний URL в этом формате..
http://www.domain.com/redirector.php?url=http://www.anyexternalurl.com...
Я в настоящее время использую PHP, чтобы сделать это, но не понял это.
4 ответа
Ты можешь использовать preg_replace()
Функция для этого. Так как в Stackru уже есть вопрос, на который уже дан ответ. Пожалуйста, обратитесь к нему Как имитировать поведение автоматической ссылки на Stackru и этот http://css-tricks.com/snippets/php/find-urls-in-text-make-links/
preg_replace может быть слишком медленным для этого. Вы можете использовать это:
if ('http' === substr($url, 0, 4)) {
//external
$url = 'http://example.com/redirect.php?url=' . $url;
}
auto_append_file
Директива может быть установлена на файл, который выполняется после вашего основного файла PHP. Этот файл может анализировать содержимое буфера вывода, изменять ссылки так, как вы хотите, и распечатывать измененный HTML.
Если вы собираетесь сделать это без редактирования всех своих страниц, то одним из решений будет
Используйте auto_prepend_file, чтобы начать буферизацию вывода, см. Ob_start()
Используя файл auto_append_file, прочитайте содержимое буфера вывода и замените ссылки текстом, который вы хотите, используя preg_replace()
Затем подайте переданное содержимое конечному пользователю.