PHP fopen函数只能以一种方式工作

时间:2016-05-24 13:19:00

标签: php

好的,让我解释一下是什么:

我有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);

1 个答案:

答案 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 ) {

});