例如我想把“CSDN.NET”首页中的“头条新闻”这一块链接到自己的网页上,并假设CSDN首页加了密,并知道他的帐号密码,而且同一帐号不能在两台机器同时登陆。能行吗?

解决方案 »

  1.   

    怎么又问,下面的不行吗?
    ==================================
    文件名:csdn.inc.php
    <?php
    /*
     * filename=csdn.inc.php
     * 用法:可将代码直接复制过去,也可以用include("csdn.inc.php");
     */
    error_reporting (E_ALL);
    $service_port = getservbyname ('www', 'tcp');
    $address = gethostbyname ('www.csdn.net');
    $socket = socket_create (AF_INET, SOCK_STREAM, 0);$result = socket_connect ($socket, $address, $service_port);
    if ($result < 0) {
        $the_info = "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
    } else {
        $the_info =  "OK.\n";
    }$in = "GET / HTTP/1.0\r\nHost: www.csdn.net\r\n\r\n";
    $out = '';
    $the_contect = '';
    socket_write ($socket, $in, strlen ($in));for ($i = 0; $i < 50; $i++) {
    $out = socket_read($socket,2048);
    if($i>5)$the_contect .= $out;
    }
    $the_contect = strstr($the_contect,"<!--头条信息");
    $me = explode("\n",$the_contect);
    $contect="";
    for ($i = 13; $i < 200; $i++) {
    if(ereg("</td></tr>", $me[$i])) break;
    $contect .= $me[$i];
    }
    echo $contect;socket_close ($socket);?>
    ==============================
      

  2.   

    netvt(唯她)的代码直接用有链接路径的问题。下面的代码是我帮netvt(唯她)改进以后的。
    谁想用直接调用就可以。
    <?php
    /*
     * filename=csdn.inc.php
     * 用法:可将代码直接复制过去,也可以用include("csdn.inc.php");
     */
    error_reporting (E_ALL);
    $service_port = getservbyname ('www', 'tcp');
    $address = gethostbyname ('www.csdn.net');
    $socket = socket_create(AF_INET, SOCK_STREAM, 0);$result = socket_connect ($socket, $address, $service_port);
    if ($result < 0) {
        $the_info = "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
    } else {
        $the_info =  "OK.\n";
    }$in = "GET / HTTP/1.0\r\nHost: www.csdn.net\r\n\r\n";
    $out = '';
    $the_contect = '';
    socket_write ($socket, $in, strlen ($in));for ($i = 0; $i < 50; $i++) {
    $out = socket_read($socket,2048);
    if($i>5)$the_contect .= $out;
    }
    $the_contect = strstr($the_contect,"<!--头条信息");
    $me = explode("\n",$the_contect);
    $contect="";
    for ($i = 13; $i < 200; $i++) {
    if(ereg("</td></tr>", $me[$i])) break;
    $contect .= $me[$i];
    }//这里解决链接路径的问题 ^_^
    $contect = str_replace("href=\"/", "href=\"http://www.csdn.net/", $contect);echo $contect;socket_close ($socket);?>
      

  3.   

    忘了补充一下,你的PHP必须支持socket。也就是说你如果用的是Windows那么必须把php_sockets.dll加上。
      

  4.   

    socket要不要下载安装的,如果要那里有得下载?
      

  5.   

    这样不知道行不行?在一篇文单中看过
    使用file函数通过http协议读取内容进数组,再根据网页结构。取得数组中相应的值。
    <?php
    $lines = file ('http://www.sina.com/');for($i=0; $i < count($lines); $i++){
        echo $lines[$i];
    }
    ?>
      

  6.   

    socket函数已包含在PHP扩展库中!
      

  7.   

    我的web服务器不支持socket,是不是版本太旧了,我想问一下什么web服务器本版以上才支持socket
      

  8.   

    不支持socket是很正常的,就如file函数不能穿过代理一样。
    不要在一棵树上吊死,条条大路通罗马!
      

  9.   

    修改你的PHP配置(php.ini文件)就可以了.
    ================
    回复人: allkill(傲气游) ( ) 信誉:100  2003-06-25 15:44:00  得分:0 
     
     
      忘了补充一下,你的PHP必须支持socket。也就是说你如果用的是Windows那么必须把php_sockets.dll加上。
      
     
      

  10.   

    可惜我的电脑不支持socket,还有没有别的办法?
      

  11.   

    netvt(唯她)详细方法是怎样的呢?
      

  12.   

    我试了不行,出错,php_socket.dll我已打开了;请问怎么回事呢?
    Fatal error: Call to undefined function: socket_create() in c:\www\main.php on line 13
      

  13.   

    哦,jscript不行.另socket_create()函数可以在较高版本中使用
    在低一些的版本中用fsockopen();系列的函数代替.思路同上.
      

  14.   

    随了socket,真的没有别的办法吗?