当前位置 主页 > 服务器问题 > Linux/apache问题 >

    php 调用远程url的六种方法小结(2)

    栏目:Linux/apache问题 时间:2019-10-16 09:30


    $request.="Cookie: $cookie\n";
    $request.="\n";
    $request.=$data_string."\n";

    $fp=fsockopen($URL_Info["host"],$URL_Info["port"]);
    fputs($fp,$request);
    while(!feof($fp)){
    $result.=fgets($fp,1024);
    }
    fclose($fp);
    return$result;
    }
    printhr();
    ?>

    示例代码6:使用curl库,使用curl库之前,你可能需要查看一下php.ini,查看是否已经打开了curl扩展
    复制代码 代码如下:
    <?
    $ch = curl_init();
    $timeout = 5;
    curl_setopt ($ch, CURLOPT_URL, 'http://www.baidu.com/');
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $file_contents = curl_exec($ch);
    curl_close($ch);
    echo $file_contents;
    ?>

    关于curl库:
    curl官方网站http://curl.haxx.se/
    curl 是使用URL语法的传送文件工具,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道和大量其他有用的技巧
    复制代码 代码如下:
    <?
    functionprintarr(array$arr)
    {
    echo"<br> Row field count: ".count($arr)."<br>";
    foreach($arras$key=>$value)
    {
    echo"$key=$value <br>";
    }
    }
    ?>

    ======================================================
    PHP抓取远程网站数据的代码
    现在可能还有很多程序爱好者都会遇到同样的疑问,就是要如何像搜索引擎那样去抓取别人网站的HTML代码,然后把代码收集整理成为自己有用的数据!今天就等我介绍一些简单例子吧.

    Ⅰ.抓取远程网页标题的例子:
    以下是代码片段:
    复制代码 代码如下:
    <?php
    /*
    +-------------------------------------------------------------
    +抓取网页标题的代码,直接拷贝本代码片段,另存为.php文件执行即可.
    +-------------------------------------------------------------
    */

    error_reporting(7);
    $file = fopen ("//www.jb51.net/", "r");
    if (!$file) {
    echo "<font color=red>Unable to open remote file.</font>\n";
    exit;
    }
    while (!feof ($file)) {
    $line = fgets ($file, 1024);
    if (eregi ("<title>(.*)</title>", $line, $out)) {
    $title = $out[1];
    echo "".$title."";
    break;
    }
    }
    fclose($file);

    //End
    ?>

    Ⅱ.抓取远程网页HTML代码的例子:

    以下是代码片段:
    复制代码 代码如下:
    <? php
    /*
    +----------------
    +DNSing Sprider
    +----------------
    */

    $fp = fsockopen("www.dnsing.com", 80, $errno, $errstr, 30);
    if (!$fp) {
    echo "$errstr ($errno)<br/>\n";
    } else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host:www.dnsing.com\r\n";
    $out .= "Connection: Close \r\n\r\n";
    fputs($fp, $out);
    while (!feof($fp)) {
    echo fgets($fp, 128);
    }
    fclose($fp);
    }
    //End
    ?>
    以上两个代码片段都直接Copy回去运行就知道效果了,上面的例子只是抓取网页数据的雏形,要使其更适合自己的使用,情况有各异.所以,在此各位程序爱好者自己好好研究一下吧.

    ===============================

    稍微有点意义的函数是:get_content_by_socket(), get_url(), get_content_url(), get_content_object 几个函数,也许能够给你点什么想法。