-1

我想通过重定向在新页面中打开每个外部 url。

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

www.pppexample.com
www.pp2example.com

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

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

我目前使用 PHP 来执行此操作,但还没有弄清楚。

4

4 回答 4

0

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

于 2013-05-02T10:56:41.117 回答
0

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

if ('http' === substr($url, 0, 4)) {
    //external
    $url = 'http://example.com/redirect.php?url=' . $url;
}
于 2013-05-02T11:08:57.683 回答
0

如果您要在不编辑所有页面的情况下执行此操作,那么一种解决方案是

使用auto_prepend_file开始输出缓冲参见ob_start()

使用auto_append_file 读取输出缓冲区的内容并使用preg_replace()将链接替换为您想要的文本

然后将替换的内容提供给最终用户

于 2013-05-02T11:25:16.013 回答
0

您可以使用preg_replace()函数来执行此操作。由于 StackOverflow 中已经存在已回答的问题。请参考它 如何模仿 StackOverflow 自动链接行为和这个http://css-tricks.com/snippets/php/find-urls-in-text-make-links/

于 2013-05-02T11:06:32.337 回答