From: Gaurav Kumar on
What is the value for
"allow_url_fopen<http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen>"
in your php.ini? It should be 1.





2009/12/13 Ren¨¦ Fournier <m5(a)renefournier.com>

> CURL works (remote and local)
> file_get_contents() doesn't work (remote or local).
>
>
>
> On 2009-12-13, at 4:39 PM, Gaurav Kumar wrote:
>
> Ok Agreed.
>
> Lets do one last chance to ensure that your system is allowing external
> connections or connection to other systems in the network-
>
> Use Curl to get in the file contents. Check your PHP that Curl is enabled..
> Through phpinfo();
>
> If the script output the google page then this means that there is nothing
> that is stopping you form getting in the content externally.
>
> <?php
> // $str = file_get_contents ('http://www.google.com');
> // echo $str;
>
>
> // create a new cURL resource
> $ch = curl_init();
>
> // set URL and other appropriate options
> curl_setopt($ch, CURLOPT_URL, "http://www.google.co.in"); //
> http://www.google.com
> curl_setopt($ch, CURLOPT_HEADER, 0);
>
> // grab URL and pass it to the browser
> curl_exec($ch);
>
> // close cURL resource, and free up system resources
> curl_close($ch);
>
> ?>
>
> Thanks,
>
> Gaurav Kumar
>
>
>
> 2009/12/13 Ren¨¦ Fournier <m5(a)renefournier.com>
>
>> The thing is, the file_get_contents() fails the same way on local URLs --
>> that is, web sites hosted on the same machine. Or even using the machine's
>> own IP address.
>>
>> On 2009-12-13, at 4:00 AM, Gaurav Kumar wrote:
>>
>> Hi Rene,
>>
>> The only thing which is a hurdle is that your system/computer is not
>> allowing external connections. There seems to be nothing else wrong.
>>
>> I strongly suggest check your system firewall, any central server settings
>> through which your system gets internet access, any antivirus s/w installed
>> etc.. this can be the only reason. Something is stopping you to access
>> external connection.
>>
>> Let me know when your problem is fixed.
>> Also I tried the below code and it works fine-
>>
>> <?php
>> $str = file_get_contents ('http://www.google.com');
>> echo $str;
>> ?>
>>
>> Thanks,
>>
>> Gaurav Kumar
>>
>>
>>
>> 2009/12/11 Ren¨¦ Fournier <m5(a)renefournier.com>
>>
>>> Hi Gaurav,
>>>
>>> On 2009-12-11, at 2:55 PM, Gaurav Kumar wrote:
>>>
>>> A very typical problem. Good you sent the error message.
>>>
>>> This problem can be caused due to one of the following-
>>>
>>> 1. I have faced similar problem due to local firewall settings.
>>>
>>>
>>> Don't think this is it, since (1) the firewall settings haven't changed,
>>> and (2) other machines on the same network can execute this same code and
>>> function (but they aren't running OS X Server 10.6.
>>>
>>> 2. Try some other domain; i.e. other than google com. Try some of the
>>> local area website with a particular page like
>>> www.somedomain.com/somefile.html
>>>
>>>
>>> I've tried many different external and local web sites, and they all
>>> fail.
>>>
>>> 3. Some times the remote host does not allow you to connect to get the
>>> file contents.
>>>
>>>
>>> (Also not the cause -- as explained above.)
>>>
>>>
>>> 4. # 3 can be either way round from both the ends a) you host server does
>>> not allow external connections b) Remote host does not allow anonymous
>>> connection.
>>>
>>>
>>> Thanks for the options. I don't think they apply in this case. If you
>>> have any other suggestions on what to do, I would welcome them.
>>>
>>>
>>>
>>> Gaurav Kumar
>>> blog.oswebstudio.com
>>>
>>>
>>>
>>> On Thu, Dec 10, 2009 at 9:01 PM, Ren¨¦ Fournier <m5(a)renefournier.com>wrote:
>>>
>>>> I thought error_reporting would display them, but I guess php.ini had
>>>> them suppressed. Anyway, with:
>>>>
>>>> <?php
>>>>
>>>> error_reporting(-1);
>>>> ini_set('display_errors', 1);
>>>> set_time_limit(0);
>>>> var_dump (file_get_contents ('http://www.google.com'));
>>>>
>>>> ?>
>>>>
>>>> I get:
>>>>
>>>> Warning: file_get_contents(http://www.google.com): failed to open
>>>> stream: Operation now in progress in /____/____.php on line 7 bool(false)
>>>>
>>>> Does that help with the diagnosis?
>>>>
>>>>
>>>> On 2009-12-10, at 12:28 AM, Richard Quadling wrote:
>>>>
>>>> > 2009/12/9 Ren¨¦ Fournier <m5(a)renefournier.com>:
>>>> >> It is, and I use curl elsewhere in the same script to fetch remote
>>>> content.
>>>> >> This exact same function works fine on my MacBook Pro (10.6 client,
>>>> PHP 5.3), and *was* previously working fine under Server 10.4.11 and PHP
>>>> 5.3,
>>>> >>
>>>> >> On 2009-12-09, at 11:10 PM, laruence wrote:
>>>> >>
>>>> >>> try
>>>> >>> wget http://www.google.com in your command line to see whether the
>>>> network is reachable
>>>> >>>
>>>> >>> LinuxManMikeC wrote:
>>>> >>>>
>>>> >>>> On Wed, Dec 9, 2009 at 8:02 AM, LinuxManMikeC <
>>>> linuxmanmikec(a)gmail.com> wrote:
>>>> >>>>
>>>> >>>>> On Wed, Dec 9, 2009 at 6:45 AM, Ren¨¦ Fournier <
>>>> m5(a)renefournier.com> wrote:
>>>> >>>>>
>>>> >>>>>> Strange problem I'm having on Mac OS X Server 10.6 running PHP
>>>> 5.3. Any call of file_get_contents() on a local file works fine -- the file
>>>> is read and returned. But any call of file_get_contents on a url -- any url,
>>>> local or remote -- always returns false.
>>>> >>>>>>
>>>> >>>>>> var_dump (file_get_contents ('http://www.google.com/')<http://www.google.com/%27%29>
>>>> );
>>>> >>>>>>
>>>> >>>>>> bool(false)
>>>> >>>>>>
>>>> >>>>>> I've checked php.ini, and the obvious seems okay:
>>>> >>>>>>
>>>> >>>>>> allow_url_fopen => On => On
>>>> >>>>>>
>>>> >>>>>> Any ideas?
>>>> >>>>>>
>>>> >>>>>> ...Rene
>>>> >>>>>>
>>>> >>>>>
>>>> http://us2.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
>>>> >>>>>
>>>> >>>>>
>>>> >>>>
>>>> >>>> "I've checked php.ini"
>>>> >>>> Right, must remember not to reply to stuff till I'm awake. :-D
>>>> >>>>
>>>> >>>> --
>>>> >>>> PHP General Mailing List (http://www.php.net/)
>>>> >>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>> >>>>
>>>> >>>>
>>>> >>>
>>>> >>> --
>>>> >>> <2866791487_dbbbdddf9e.jpg>»Ý ÐÂå· xinchen.hui | ÉÌÎñËÑË÷²¿ |
>>>> (+8610)82602112-7974 | <2866349865_203e53a6c6.jpg>:laruence
>>>> >>
>>>> >>
>>>> >
>>>> > Do you have ANY errors/warning/notices?
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > -----
>>>> > Richard Quadling
>>>> > "Standing on the shoulders of some very clever giants!"
>>>> > EE : http://www.experts-exchange.com/M_248814.html
>>>> > Zend Certified Engineer :
>>>> http://zend.com/zce.php?c=ZEND002498&r=213474731
>>>> > ZOPA : http://uk.zopa.com/member/RQuadling
>>>>
>>>>
>>>
>>>
>>
>>
>
>
From: Gaurav Kumar on
Sorry buddy, I cant think of anything else which is going on wrong.


2009/12/14 Ren¨¦ Fournier <m5(a)renefournier.com>

>
> PHP Version 5.3.0
>
> Directive Local Value Master Value
> allow_call_time_pass_reference Off Off
> allow_url_fopen On
>
>
> On 2009-12-14, at 12:26 AM, Gaurav Kumar wrote:
>
> What is the value for "allow_url_fopen<http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen>"
> in your php.ini? It should be 1.
>
>
>
>
>
> 2009/12/13 Ren¨¦ Fournier <m5(a)renefournier.com>
>
>> CURL works (remote and local)
>> file_get_contents() doesn't work (remote or local).
>>
>>
>>
>> On 2009-12-13, at 4:39 PM, Gaurav Kumar wrote:
>>
>> Ok Agreed.
>>
>> Lets do one last chance to ensure that your system is allowing external
>> connections or connection to other systems in the network-
>>
>> Use Curl to get in the file contents. Check your PHP that Curl is enabled.
>> Through phpinfo();
>>
>> If the script output the google page then this means that there is nothing
>> that is stopping you form getting in the content externally.
>>
>> <?php
>> // $str = file_get_contents ('http://www.google.com');
>> // echo $str;
>>
>>
>> // create a new cURL resource
>> $ch = curl_init();
>>
>> // set URL and other appropriate options
>> curl_setopt($ch, CURLOPT_URL, "http://www.google.co.in"); //
>> http://www.google.com
>> curl_setopt($ch, CURLOPT_HEADER, 0);
>>
>> // grab URL and pass it to the browser
>> curl_exec($ch);
>>
>> // close cURL resource, and free up system resources
>> curl_close($ch);
>>
>> ?>
>>
>> Thanks,
>>
>> Gaurav Kumar
>>
>>
>>
>> 2009/12/13 Ren¨¦ Fournier <m5(a)renefournier.com>
>>
>>> The thing is, the file_get_contents() fails the same way on local URLs --
>>> that is, web sites hosted on the same machine. Or even using the machine's
>>> own IP address.
>>>
>>> On 2009-12-13, at 4:00 AM, Gaurav Kumar wrote:
>>>
>>> Hi Rene,
>>>
>>> The only thing which is a hurdle is that your system/computer is not
>>> allowing external connections. There seems to be nothing else wrong.
>>>
>>> I strongly suggest check your system firewall, any central server
>>> settings through which your system gets internet access, any antivirus s/w
>>> installed etc.. this can be the only reason. Something is stopping you to
>>> access external connection.
>>>
>>> Let me know when your problem is fixed.
>>> Also I tried the below code and it works fine-
>>>
>>> <?php
>>> $str = file_get_contents ('http://www.google.com');
>>> echo $str;
>>> ?>
>>>
>>> Thanks,
>>>
>>> Gaurav Kumar
>>>
>>>
>>>
>>> 2009/12/11 Ren¨¦ Fournier <m5(a)renefournier.com>
>>>
>>>> Hi Gaurav,
>>>>
>>>> On 2009-12-11, at 2:55 PM, Gaurav Kumar wrote:
>>>>
>>>> A very typical problem. Good you sent the error message.
>>>>
>>>> This problem can be caused due to one of the following-
>>>>
>>>> 1. I have faced similar problem due to local firewall settings.
>>>>
>>>>
>>>> Don't think this is it, since (1) the firewall settings haven't changed,
>>>> and (2) other machines on the same network can execute this same code and
>>>> function (but they aren't running OS X Server 10.6.
>>>>
>>>> 2. Try some other domain; i.e. other than google com. Try some of the
>>>> local area website with a particular page like
>>>> www.somedomain.com/somefile.html
>>>>
>>>>
>>>> I've tried many different external and local web sites, and they all
>>>> fail.
>>>>
>>>> 3. Some times the remote host does not allow you to connect to get the
>>>> file contents.
>>>>
>>>>
>>>> (Also not the cause -- as explained above.)
>>>>
>>>>
>>>> 4. # 3 can be either way round from both the ends a) you host server
>>>> does not allow external connections b) Remote host does not allow anonymous
>>>> connection.
>>>>
>>>>
>>>> Thanks for the options. I don't think they apply in this case. If you
>>>> have any other suggestions on what to do, I would welcome them.
>>>>
>>>>
>>>>
>>>> Gaurav Kumar
>>>> blog.oswebstudio.com
>>>>
>>>>
>>>>
>>>> On Thu, Dec 10, 2009 at 9:01 PM, Ren¨¦ Fournier <m5(a)renefournier.com>wrote:
>>>>
>>>>> I thought error_reporting would display them, but I guess php.ini had
>>>>> them suppressed. Anyway, with:
>>>>>
>>>>> <?php
>>>>>
>>>>> error_reporting(-1);
>>>>> ini_set('display_errors', 1);
>>>>> set_time_limit(0);
>>>>> var_dump (file_get_contents ('http://www.google.com'));
>>>>>
>>>>> ?>
>>>>>
>>>>> I get:
>>>>>
>>>>> Warning: file_get_contents(http://www.google.com): failed to open
>>>>> stream: Operation now in progress in /____/____.php on line 7 bool(false)
>>>>>
>>>>> Does that help with the diagnosis?
>>>>>
>>>>>
>>>>> On 2009-12-10, at 12:28 AM, Richard Quadling wrote:
>>>>>
>>>>> > 2009/12/9 Ren¨¦ Fournier <m5(a)renefournier.com>:
>>>>> >> It is, and I use curl elsewhere in the same script to fetch remote
>>>>> content.
>>>>> >> This exact same function works fine on my MacBook Pro (10.6 client,
>>>>> PHP 5.3), and *was* previously working fine under Server 10.4.11 and PHP
>>>>> 5.3,
>>>>> >>
>>>>> >> On 2009-12-09, at 11:10 PM, laruence wrote:
>>>>> >>
>>>>> >>> try
>>>>> >>> wget http://www.google.com in your command line to see whether the
>>>>> network is reachable
>>>>> >>>
>>>>> >>> LinuxManMikeC wrote:
>>>>> >>>>
>>>>> >>>> On Wed, Dec 9, 2009 at 8:02 AM, LinuxManMikeC <
>>>>> linuxmanmikec(a)gmail.com> wrote:
>>>>> >>>>
>>>>> >>>>> On Wed, Dec 9, 2009 at 6:45 AM, Ren¨¦ Fournier <
>>>>> m5(a)renefournier.com> wrote:
>>>>> >>>>>
>>>>> >>>>>> Strange problem I'm having on Mac OS X Server 10.6 running PHP
>>>>> 5.3. Any call of file_get_contents() on a local file works fine -- the file
>>>>> is read and returned. But any call of file_get_contents on a url -- any url,
>>>>> local or remote -- always returns false.
>>>>> >>>>>>
>>>>> >>>>>> var_dump (file_get_contents ('http://www.google.com/')<http://www.google.com/%27%29>
>>>>> );
>>>>> >>>>>>
>>>>> >>>>>> bool(false)
>>>>> >>>>>>
>>>>> >>>>>> I've checked php.ini, and the obvious seems okay:
>>>>> >>>>>>
>>>>> >>>>>> allow_url_fopen => On => On
>>>>> >>>>>>
>>>>> >>>>>> Any ideas?
>>>>> >>>>>>
>>>>> >>>>>> ...Rene
>>>>> >>>>>>
>>>>> >>>>>
>>>>> http://us2.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
>>>>> >>>>>
>>>>> >>>>>
>>>>> >>>>
>>>>> >>>> "I've checked php.ini"
>>>>> >>>> Right, must remember not to reply to stuff till I'm awake. :-D
>>>>> >>>>
>>>>> >>>> --
>>>>> >>>> PHP General Mailing List (http://www.php.net/)
>>>>> >>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>> >>>>
>>>>> >>>>
>>>>> >>>
>>>>> >>> --
>>>>> >>> <2866791487_dbbbdddf9e.jpg>»Ý ÐÂå· xinchen.hui | ÉÌÎñËÑË÷²¿ |
>>>>> (+8610)82602112-7974 | <2866349865_203e53a6c6.jpg>:laruence
>>>>> >>
>>>>> >>
>>>>> >
>>>>> > Do you have ANY errors/warning/notices?
>>>>> >
>>>>> >
>>>>> >
>>>>> > --
>>>>> > -----
>>>>> > Richard Quadling
>>>>> > "Standing on the shoulders of some very clever giants!"
>>>>> > EE : http://www.experts-exchange.com/M_248814.html
>>>>> > Zend Certified Engineer :
>>>>> http://zend.com/zce.php?c=ZEND002498&r=213474731
>>>>> > ZOPA : http://uk.zopa.com/member/RQuadling
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
From: Richard Quadling on
2009/12/14 Ashley Sheridan <ash(a)ashleysheridan.co.uk>
>
> On Mon, 2009-12-14 at 17:03 +0200, Cafer Şimşek wrote:
>
> René Fournier <m5(a)renefournier.com> writes:
>
> > On 2009-12-14, at 10:44 PM, Cafer Şimşek wrote:
> >
> >> René Fournier <m5(a)renefournier.com> writes:
> >>
> >>> 4. as per php.ini, allow_url_fopen On
> >>
> >> Look at from phpinfo() the settings is already "On".
> >
> > Yes, I know.
> >
> > Which is why it's odd that the function fails on URLs.
>
> try to get url content from any browser or (if you use Linux / Unix)
> curl.
>
> --
> Cafer Şimşek
> DEV Staff Leader
> http://pazar.com/
>
>
> He already said Curl works, and changing the browser won't affect what PHP is doing.
>
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>
>

Do you have a default stream context defined for the http stream?

A _LONG_ time ago, when I was using a firewall with NTLM
authentication (which PHP doesn't deal with), I had to route all my
calls through a local proxy.

This was the code I had ...

<?php
// Define the default, system-wide context.
$r_default_context = stream_context_get_default(
array(
'http' => array( // All HTTP requests are passed through the local
NTLM proxy server on port 8080.
'proxy' => 'tcp://127.0.0.1:8080',
'request_fulluri' => True,
),
)
);

// Though we said system wide, some extensions need a little coaxing.
libxml_set_streams_context($r_default_context);


Now, you may not see this in your code, but may be in a script which
is loaded via auto_prepend_file.

I would also suggest running something like WireShark at the same time
as your script. See if there is ANY traffic over the wire.

Do the cURL and file_get_contents() code generate identical requests?


--
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling
From: Richard Quadling on
2009/12/16 René Fournier <m5(a)renefournier.com>:
> On 2009-12-15, at 11:55 PM, Richard Quadling wrote:
>
> Do you have a default stream context defined for the http stream?
>
> Nope.
>
> A _LONG_ time ago, when I was using a firewall with NTLM
> authentication (which PHP doesn't deal with), I had to route all my
> calls through a local proxy.
>
> This was the code I had ...
>
> <?php
> // Define the default, system-wide context.
> $r_default_context = stream_context_get_default(
> array(
> 'http' => array( // All HTTP requests are passed through the local
> NTLM proxy server on port 8080.
> 'proxy' => 'tcp://127.0.0.1:8080',
> 'request_fulluri' => True,
> ),
> )
> );
>
> // Though we said system wide, some extensions need a little coaxing.
> libxml_set_streams_context($r_default_context);
>
>
> Now, you may not see this in your code, but may be in a script which
> is loaded via auto_prepend_file.
>
> Wish it were, but my test code is bare bones.
>
> I would also suggest running something like WireShark at the same time
> as your script. See if there is ANY traffic over the wire.
>
> Do the cURL and file_get_contents() code generate identical requests?
>
> cURL -- both PHP and command-line -- fetches files and URLs (remote and
> local) w/o issues. file_get_contents() fetches files, but fails on all URLs
> (remote and local). This is why I believe the problem lies with the
> machine's configuration and not the Firewall.
> It's pretty confounding, isn't it? I'm not sure what to do at this point.
> ...Rene
>
>

But by using something like WireShark you can see exactly what
requests ARE being made. You may be getting a redirect reply which is
failing or something daft. Anything really.



--
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling