<?php
$handle = fopen ("http://www.csdn.net/", "rb");
$contents = "";
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
echo $contents;
?> 仔细看手册。。
用file_get_contents()会更好。。

解决方案 »

  1.   

    谢谢楼上的,为什么fread里的文件大小要用8192?有人能解释一下吗?
      

  2.   

    fread
    (PHP 3, PHP 4, PHP 5)
    fread -- 读取文件(可安全用于二进制文件)
    说明
    string fread ( int handle, int length )
    fread() 从文件指针 handle 读取最多 length 个字节。 该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
    /************************
    估计这是你读不到的原因
    **********************/
    当从网络流或者管道读取时,例如在读取从远程文件或 popen() 以及 proc_open() 的返回时,读取会在一个包可用之后停止。这意味着你应该如下例所示将数据收集起来合并成大块。
    /************************
    另一方面
    **********************/
    注: 如果你只是想将一个文件的内容读入到一个字符串中,用 file_get_contents(),它的性能比上面的代码好得多。