zoukankan      html  css  js  c++  java
  • PHP 获取远程文件内容

    如下函数:

    <?
    /** 
        获取远程文件内容 
        @param $url 文件http地址 
    */ 
    function fopen_url($url) 
    { 
        if (function_exists('file_get_contents')) { 
            $file_content = @file_get_contents($url); 
        } elseif (ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))){ 
            $i = 0; 
            while (!feof($file) && $i++ < 1000) { 
                $file_content .= strtolower(fread($file, 4096)); 
            } 
            fclose($file); 
        } elseif (function_exists('curl_init')) { 
            $curl_handle = curl_init(); 
            curl_setopt($curl_handle, CURLOPT_URL, $url); 
            curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2); 
            curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1); 
            curl_setopt($curl_handle, CURLOPT_FAILONERROR,1); 
            curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check'); //引用垃圾邮件检查
            $file_content = curl_exec($curl_handle); 
            curl_close($curl_handle); 
        } else { 
            $file_content = ''; 
        } 
        return $file_content; 
    }
    ?> 
    

    相关解释:

    1,ini_get : Returns the value of the configuration option as a string on success, or an empty string on failure(读取 php.ini 配置文件中的值)
    2,; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
    allow_url_fopen
    = On(配置文件中的内容)

    3,fopen( "rb"): 在操作二进制文件时如果没有指定 'b' 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。

    注意: 为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用
    'b' 标记。

    注意: 再一次,为移植性考虑,强烈建议你重写那些依赖于
    't' 模式的代码使其使用正确的行结束符并改成 'b' 模式。

    4,strtolower -- Make a string lowercase

    5,curl_init() :curl_init -- Initialize a cURL session(初始化一个cUrl会话)

    resource curl_init ( [string url] )

    Initializes a new session
    and return a cURL handle for use with the curl_setopt(), curl_exec(), and curl_close() functions.

    url
    --If provided, the CURLOPT_URL option will be set to its value. You can manually set this using the curl_setopt() function.

    Returns a cURL handle on success, FALSE on errors.

    6,curl_setopt -- Set an option for a cURL transfer(提供设置)

    bool curl_setopt ( resource ch, int option, mixed value )

    Sets an option on the given cURL session handle. (具体请看 PHP 手册) There:

    CURLOPT_URL :The URL to fetch. You can also set this when initializing a session with curl_init().

    CURLOPT_CONNECTTIMEOUT :The number of seconds to wait whilst trying to connect. Use 0 to wait indefinitely.(无限期等待 设置为 0)

    CURLOPT_RETURNTRANSFER :TRUE to
    return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.

    CURLOPT_FAILONERROR :TRUE to fail silently
    if the HTTP code returned is greater than or equal to 400. The default behavior is to return the page normally, ignoring the code.

    CURLOPT_USERAGENT :The contents of the
    "User-Agent: " header to be used in a HTTP request.

    7,curl_exec : Perform a cURL session, This function should be called after you initialize a cURL session and all the options for the session are set.

    如果成功则返回 TRUE,失败则返回 FALSE。 However,
    if the CURLOPT_RETURNTRANSFER option is set, it will return the result on success, FALSE on failure

    8,curl_close -- Close a cURL session


  • 相关阅读:
    zoj3430Detect the Virus(ac自动机)
    zoj3494BCD Code(ac自动机+数位dp)
    hdu3247Resource Archiver(ac自动机+spfa)
    hdu3341Lost's revenge(ac自动机+dp)
    hdu4511小明系列故事——女友的考验(ac自动机+最短路)
    hdu4758Walk Through Squares(ac自动机+dp)
    数论一
    母函数专题
    KMP专题
    3级算法题
  • 原文地址:https://www.cnblogs.com/catprayer/p/1693867.html
Copyright © 2011-2022 走看看