如何在php中自动在外部URL之前添加前缀

时间:2013-05-02 10:46:56

标签: php url redirect hyperlink url-redirection

我想通过重定向打开新页面中的每个外部网址。

这些外部链接将显示在我的页面上

www.pppexample.com
www.pp2example.com

我想以这种格式打开每个外部网址。

http://www.domain.com/redirector.php?url=http://www.anyexternalurl.com...

我目前正在使用PHP来做这件事,但还没弄明白。

4 个答案:

答案 0 :(得分:0)

auto_append_file指令可以设置为在主PHP文件之后执行的文件。该文件可以解析输出缓冲区的内容,以您希望的方式修改链接并打印出修改后的HTML。

答案 1 :(得分:0)

您可以使用preg_replace()功能执行此操作。 由于StackOverflow中已经存在已经回答的问题。请参考它 How to mimic StackOverflow Auto-Link Behavior和此http://css-tricks.com/snippets/php/find-urls-in-text-make-links/

答案 2 :(得分:0)

preg_replace可能太慢了。 你可以用这个:

if ('http' === substr($url, 0, 4)) {
    //external
    $url = 'http://example.com/redirect.php?url=' . $url;
}

答案 3 :(得分:0)

如果您打算在不编辑所有页面的情况下执行此操作,则可以使用一种解决方案

使用auto_prepend_file开始输出缓冲,请参阅ob_start()

使用auto_append_file read the contents of the output buffer并使用preg_replace()

将链接替换为您想要的文字

然后将重新放置的内容提供给最终用户