ID: 38826
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Feedback
+Status: Open
Bug Type: Streams related
Operating System: WinXP
PHP Version: 5.1.6
New Comment:
Yes, the var_dump going to your file remotely does:
string(256) "aaaaaaaaaaaaa......
It is your fle that I copied to make my 256as.file.
But when I copy your file under my Apache and do file_get_contents to
it I get the empty string.
So I can only suppose that it is somehow something to do with my local
5.1.6. PHP CLI talking to my local Apache with 5.1.6 underneath, on
WinXP.
Previous Comments:
------------------------------------------------------------------------
[2006-09-14 17:37:41] [EMAIL PROTECTED]
Does this work for you:
var_dump(file_get_contents("http://tony2001.phpclub.net/dev/tmp/info.xsd"));
?
------------------------------------------------------------------------
[2006-09-14 17:02:02] [EMAIL PROTECTED]
Sorry, I didn't mean to be rude with "not sure how seriously" - it
looked like a boilerplate text and I thought it might be an automated
response. And because it was just the size of the file that mattered I
didn't think to put a copy of it in the defect; but I should have made
that clearer.
Anyway, I am baffled. When I use file_get_contents to go for your file
remotely it works fine, but if I put your file on my machine and go for
it with localhost it goes wrong. I am running Apache/2.0.59 (Win32)
PHP/5.1.6, by the way.
I have got two files, one with 255 a's and one with 256 - which is the
file that you put up. CURL gets correct contents and byte counts,
file_get_contents does not. The Apache access log claims it is
returning 255 and 256 bytes each time, though.
I am running it with CLI.
Here is my test now, comparing CURL with file_get_contents:
<?php
$buf = file_get_contents('http://localhost/255as.file');
echo strlen($buf) . "\n";
$buf = file_get_contents('http://localhost/256as.file');
echo strlen($buf) . "\n";
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'http://localhost/255as.file');
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
$buf = curl_exec($curl_handle);
curl_close($curl_handle);
echo strlen($buf) . "\n";
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,'http://localhost/256as.file');
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
$buf = curl_exec($curl_handle);
curl_close($curl_handle);
echo strlen($buf) . "\n";
?>
It relies on the two files 255as.file and 256as.file being in the local
server's docroot.
The output I get is:
255
0
255
256
The Apache access log says:
127.0.0.1 - - [14/Sep/2006:17:43:31 +0100] "GET
/MyService/AddressBook/255as.file HTTP/1.0" 200 255
127.0.0.1 - - [14/Sep/2006:17:43:31 +0100] "GET
/MyService/AddressBook/256as.file HTTP/1.0" 200 256
127.0.0.1 - - [14/Sep/2006:17:43:32 +0100] "GET
/MyService/AddressBook/255as.file HTTP/1.1" 200 255
127.0.0.1 - - [14/Sep/2006:17:43:32 +0100] "GET
/MyService/AddressBook/256as.file HTTP/1.1" 200 256
If you were able to point me to the right routine in PHP I could add a
bit of diagnostic code and rebuild...or if I can help in any other way.
My colleague, who has a very similar set up (but running 5.1.4) sees
the same thing on her machine, completely independent of mine, by the
way.
------------------------------------------------------------------------
[2006-09-14 12:49:15] [EMAIL PROTECTED]
>I am not sure how seriously to take the response
Well, I'm not sure either how to take a report with "http://localhost"
as a test data.
------------------------------------------------------------------------
[2006-09-14 12:48:19] [EMAIL PROTECTED]
Please upload the file somewhere and put the link here.
Make sure you're looking into the source of the page or even better try
it with CLI.
I cannot reproduce anything like that:
var_dump(file_get_contents("http://tony2001.phpclub.net/dev/tmp/info.xsd"));
works like a charm with any PHP version I have here (and I have a lot
of them).
------------------------------------------------------------------------
[2006-09-14 12:36:15] [EMAIL PROTECTED]
Errr... I am not sure how seriously to take the response "[14 Sep
11:51am UTC] [EMAIL PROTECTED]", but here goes:
1. The reproduce code is:
<?php
echo
file_get_contents('http://localhost/MyService/AddressBook/info.xsd');
?>
2. I do not know how to supply a test script that does not rely on
external resources since this problem occurs reading a URL and almost
by definition a URL is an external resource.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/38826
--
Edit this bug report at http://bugs.php.net/?id=38826&edit=1