Server configuration by allow_url_fopen=0 in

前端 未结 6 2020
傲寒
傲寒 2020-12-14 18:24

I\'m getting the following error when running a script. The error message is as follows...

Warning: file_get_contents() [function.file-get-contents]:

相关标签:
6条回答
  • 2020-12-14 19:13

    @blytung Has a nice function to replace that function

    <?php
    $url = "http://www.example.org/";
    $ch = curl_init();
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $contents = curl_exec($ch);
    if (curl_errno($ch)) {
      echo curl_error($ch);
      echo "\n<br />";
      $contents = '';
    } else {
      curl_close($ch);
    }
    
    if (!is_string($contents) || !strlen($contents)) {
    echo "Failed to get contents.";
    $contents = '';
    }
    
    echo $contents;
    ?>    
    
    0 讨论(0)
  • 2020-12-14 19:14

    Using relative instead of absolute file path solved the problem for me. I had the same issue and setting allow_url_fopen=on did not help. This means for instance :

    use $file="folder/file.ext"; instead of $file="https://website.com/folder/file.ext"; in

    $f=fopen($file,"r+");
    
    0 讨论(0)
  • 2020-12-14 19:16

    If you do not have the ability to modify your php.ini file, use cURL: PHP Curl And Cookies

    Here is an example function I created:

    function get_web_page( $url, $cookiesIn = '' ){
            $options = array(
                CURLOPT_RETURNTRANSFER => true,     // return web page
                CURLOPT_HEADER         => true,     //return headers in addition to content
                CURLOPT_FOLLOWLOCATION => true,     // follow redirects
                CURLOPT_ENCODING       => "",       // handle all encodings
                CURLOPT_AUTOREFERER    => true,     // set referer on redirect
                CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
                CURLOPT_TIMEOUT        => 120,      // timeout on response
                CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
                CURLINFO_HEADER_OUT    => true,
                CURLOPT_SSL_VERIFYPEER => true,     // Validate SSL Cert
                CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_1_1,
                CURLOPT_COOKIE         => $cookiesIn
            );
    
            $ch      = curl_init( $url );
            curl_setopt_array( $ch, $options );
            $rough_content = curl_exec( $ch );
            $err     = curl_errno( $ch );
            $errmsg  = curl_error( $ch );
            $header  = curl_getinfo( $ch );
            curl_close( $ch );
    
            $header_content = substr($rough_content, 0, $header['header_size']);
            $body_content = trim(str_replace($header_content, '', $rough_content));
            $pattern = "#Set-Cookie:\\s+(?<cookie>[^=]+=[^;]+)#m"; 
            preg_match_all($pattern, $header_content, $matches); 
            $cookiesOut = implode("; ", $matches['cookie']);
    
            $header['errno']   = $err;
            $header['errmsg']  = $errmsg;
            $header['headers']  = $header_content;
            $header['content'] = $body_content;
            $header['cookies'] = $cookiesOut;
        return $header;
    }
    

    NOTE: In revisiting this function I noticed that I had disabled SSL checks in this code. That is generally a BAD thing even though in my particular case the site I was using it on was local and was safe. As a result I've modified this code to have SSL checks on by default. If for some reason you need to change that, you can simply update the value for CURLOPT_SSL_VERIFYPEER, but I wanted the code to be secure by default if someone uses this.

    0 讨论(0)
  • 2020-12-14 19:17

    THIS IS A VERY SIMPLE PROBLEM

    Here is the best method for solve this problem.

    Step 1 : Login to your cPanel (http://website.com/cpanel OR http://cpanel.website.com).

    Step 2 : SOFTWARE -> Select PHP Version

    Step 3 : Change Your Current PHP version : 5.6

    Step 3 : HIT 'Set as current' [ ENJOY ]

    0 讨论(0)
  • 2020-12-14 19:19

    Use this code in your php script (first lines)

    ini_set('allow_url_fopen',1);
    
    0 讨论(0)
  • 2020-12-14 19:22

    Edit your php.ini, find allow_url_fopen and set it to allow_url_fopen = 1

    0 讨论(0)
提交回复
热议问题