问题
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!
回答1:
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.
回答2:
I think there should be http://server and not http:/server.
回答3:
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?
来源:https://stackoverflow.com/questions/6938254/unable-to-open-remote-xml-file-using-fopen-what-all-permission-i-need-to-set