我正在尝试解决跨域问题,因此我正在实现一个脚本,该脚本将从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可以有一个按钮到另一个具有另一个相对路径的页面。
这个问题有一个优雅的解决方案吗?
答案 0 :(得分:1)
我会使用基本HTML标记,而不是浏览整个源代码,只需将其插入</head>
标记之前。
只需一行代码就可以非常简单:echo str_replace("</head>", "<base href=\"http://content.domain/\" target=\"_blank\"></head>", $source)
使用基本标记使浏览器为您处理所有嵌套链接:
为网页上的所有链接指定默认网址和默认目标: