Prev: request for support
Next: file_get_contents ($file) works -- file_get_contents ($url) returns false
From: Gaurav Kumar on 13 Dec 2009 11:26 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 14 Dec 2009 09:05 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 15 Dec 2009 10:55 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 16 Dec 2009 05:14 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
First
|
Prev
|
Pages: 1 2 3 Prev: request for support Next: file_get_contents ($file) works -- file_get_contents ($url) returns false |