我试图解决一个跨域问题,所以我正在实现一个脚本,将从get参数获取URL并打开file_get_contents。它可以正常工作,直到页面尝试获得相对路径(以下行在index.html中):
<script src="js/custom_script.js" />
如果我用preg_replace创建一个regex替换所有的HTML数据切换js/custom.js到http://content.domain/js/custom_script.js它也可以工作,但问题是我并不总是知道有多少级别是在我试图打开的页面内,如:index.html可以有一个按钮到另一个页面与另一个相对路径。
这个问题有一个优雅的解决方案吗?
我将使用基本的HTML标签,而不是刮遍整个源代码,只是将其插入</head>
标签之前。
可以非常简单,只需一行代码:echo str_replace("</head>", "<base href="http://content.domain/" target="_blank"></head>", $source)
使用base标签可以让浏览器为你处理所有嵌套的链接:
为页面上的所有链接指定默认URL和默认目标: