无法使用fopen()打开远程XML文件。 我需要在服务器中设置的所有权限或者我需要在fopen()函数中设置的参数。

我试图通过fopen()函数在远程服务器中打开一个XML文件。
我有两个远程服务器和 两个服务器中xml的文件权限设置为777.
i能够从一个服务器打开xml,但不能从其他服务器打开xml。 这两个文件都可以在浏览器中打开。</ p>

我需要设置的所有权限或者我需要在fopen()函数中设置哪些参数。?</ p>
nn

这是函数</ p>

 函数getFileData($ ProjectName)
{
$ file = fopen($ ProjectName,“r”)或退出(“无法打开文件 !“。$ ProjectName);
$ fileContent =”“;
while(!feof($ file))
{
$ fileContent。= fgets($ file);
}
fclose($ file );
echo $ fileContent;
}

getFileData('http://serverA.com/myxml.xml'); //给出内容
getFileData('http://serverB.com/myxml.xml'); //给出错误fopen(http:/serverB.com/myxml.xml)[function.fopen]:无法打开流:HTTP请求失败!
</ code> </ pre>
</ div>

展开原文

原文

I am trying to open an XML file in remote server through fopen() function. I have two remote servers and the file permission of the xml is set to 777 in both servers. i am able to open the xml from one server , but not from other. Both files can be opened in browser.

What all permission i need to set or what parameters i need to set in fopen() function.?

this is the function

function getFileData($ProjectName)
{
    $file = fopen($ProjectName, "r") or exit("Unable to open File! ".$ProjectName);
    $fileContent="";
        while(!feof($file))
          {
         $fileContent.=fgets($file);
          }
    fclose($file);
    echo $fileContent;
}

getFileData('http://serverA.com/myxml.xml'); // gives the content
getFileData('http://serverB.com/myxml.xml'); // gives the error fopen(http:/serverB.com/myxml.xml) [function.fopen]: failed to open stream: HTTP request failed!

3个回答



在最后两行中你只有一个/在http:之后 - 但我怀疑这是问题所在。 你可以在浏览器中打开文件吗?</ p>

也许尝试使用 file_get_contents 。 它与您的功能相同,除了它已经完成并由PHP人员进行了全面测试。</ p>
</ div>

展开原文

原文

You only have one / after http: in the last two lines - but I doubt that's the problem. Can you open the file in the browser?

Perhaps try using file_get_contents . It does the same as your function, except it's ready made and fully tested by the PHP guys.

dsfsw1233
dsfsw1233 也许运行PHP代码的网络服务器无法连接到您的serverB.com。 你能从serverB.com检索其他文件吗?
大约 9 年之前 回复
dqg2269
dqg2269 检查文档中有关其参数的file_get_contents(单击链接)。
大约 9 年之前 回复
dso407787736
dso407787736 这是打字错误,我纠正了这一点。 我正在使用“http://”。 是的,我尝试使用“file_get_contents()”相同的错误。 我是否需要任何具有该功能的参数
大约 9 年之前 回复

展开原文

原文

I think there should be http://server and not http:/server.

douwei1408
douwei1408 我该如何检查网址响应状态代码..? 是的,我可以在浏览器中打开..在服务器中需要设置什么文件权限。?
大约 9 年之前 回复
dsyq40772
dsyq40772 如果URL以1xx,4xx或5xx状态代码响应,您将收到“无法打开流:HTTP请求失败!”,然后是HTTP状态响应。 file_get_contents($ url)也一样......你能用浏览器打开第二个网址吗?
大约 9 年之前 回复
doufen5175
doufen5175 也许这个网址可以帮到你:php-mysql-tutorial.com/wikis/php-tutorial / ...
大约 9 年之前 回复
doutong1890
doutong1890 这是打字错误,我纠正了这一点。 我正在使用“http://”
大约 9 年之前 回复



除了URL的可见问题外,还要检查php中设置的 allow_url_fopen </ code>的值是多少。 ini,如果您可以从一台服务器打开文件而不能从其他服务器打开文件,这可能是为您正确设置的,您是否检查了超时?</ p>
</ div>

展开原文

原文

Apart from the visible problem with URL, also check what is the value for allow_url_fopen set in your php.ini, if you can open file from one server but not from other server this may be correctly set for you, did you check about timeouts?

dormbaf90464
dormbaf90464 是的......第二个是失败的...但我可以在浏览器中打开它..需要设置什么文件权限。
大约 9 年之前 回复
dongyu6276
dongyu6276 所以你说的是它适用于一个URL,但是对另一个URL失败,尝试切换URL或尝试只获取一个失败的URL
大约 9 年之前 回复
dongxing6802
dongxing6802 我尝试使用“file_get_contents()”同样的错误。 我是否需要具有该功能的任何其他参数
大约 9 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐