Как добавить префикс перед внешним 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()

Затем подайте переданное содержимое конечному пользователю.

Другие вопросы по тегам