PHP的file_get_contents:处理结果中的相对路径

时间:2015-09-25 19:09:16

标签: php cross-domain file-get-contents

我正在尝试解决跨域问题,因此我正在实现一个脚本,该脚本将从GET参数获取URL并使用file_get_contents打开。它工作正常,直到页面尝试获取相对路径(下面的行在index.html内):

<script src="js/custom_script.js" />

如果我使用preg_replace创建一个正则表达式,将所有HTML数据切换js / custom.js替换为http://content.domain/js/custom_script.js它也可以,但问题是我并不总是知道页面内有多少级别我正在尝试打开,例如:index.html可以有一个按钮到另一个具有另一个相对路径的页面。

这个问题有一个优雅的解决方案吗?

1 个答案:

答案 0 :(得分:1)

我会使用基本HTML标记,而不是浏览整个源代码,只需将其插入</head>标记之前。

只需一行代码就可以非常简单:echo str_replace("</head>", "<base href=\"http://content.domain/\" target=\"_blank\"></head>", $source)

使用基本标记使浏览器为您处理所有嵌套链接:

  

为网页上的所有链接指定默认网址和默认目标: