好的,让我解释一下是什么:
我有2个主机/网站,主机A 和主机B 。当我在主机A 上使用php函数fopen
代码到主机B 时,它可以工作,我可以阅读页面的标题。但是,当我从主机B 转到主机A 时,它将无效。当我从主机B 转到 example.com 时,现在是奇怪的事情。它确实有效?
我认为这是主机A 上的错误设置,但是,我无法在服务器上做那么多改变。有人知道如何解决这个问题吗?所以我可以从主机B 开始阅读主机A 上的文件标题?
我用来打开文件的代码(并托管在主机B 上)并搜索标题:
$file = fopen ("http://promike360.esy.es/main_site/", "r"); //This is HOST A
if ($file) {
echo "<p>Loadig remote file succesfull.</p>";
} else {
echo "<p>Unable to open remote file.</p>";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
/* This only works if the title and its tags are on one line */
if (preg_match ("@\<title\>(.*)\</title\>@i", $line, $out)) {
$title = $out[1];
echo $title;
break;
}
}
fclose($file);
答案 0 :(得分:0)
经过很长一段时间,我找到了解决问题的方法。
我有2个主机,主机A 和主机B 。我想通过在主机B 上使用脚本(用PHP编写并使用fopen
功能)来读取主机A 上的文件。
这没用。什么工作,是读取主机B 上托管的文件,并通过主机A 上的脚本读取它。 (不,文件权限是以正确的方式配置的。)
这真是奇怪,即使在这个时刻,我也在写这篇文章。我仍然不知道如何解决它。
解决此问题的解决方案是使用jQuery在 Host A 上请求文件,并在 Host A 上的文件中添加1行php代码。
[PHP] 主机A 上的代码需要在php文件中。
header('Access-Control-Allow-Origin: *');
这告诉您的浏览器您可以访问此主机。否则浏览器将阻止您的请求(这是有人告诉我的)。
[jQuery / Javascript]我用来读取文件的代码
$.get("http://example.com/file.php", function( data ) {
});