copy是文件对文件,文件对目录好像不行吧。

解决方案 »

  1.   

    呵呵,我的出错
    Warning: Unable to open 'http://qqshow-item.tencent.com/1448/9/00/' for reading: No such file or directory in /home/yjj/public_html/index.php on line 2
      

  2.   

    <?php
    copy("http://qqshow-item.tencent.com/1448/9/00/00.gif","tes2.gif");
    ?>这样你试试!
      

  3.   

    <?php
    $filename = "http://qqshow-item.tencent.com/1448/9/00/00.gif";
    $lines = file ($filename);
    $handle = fopen("test2.gif", "w");
    foreach ($lines as $line_num => $line) {
        fwrite($handle, $line);
    }
    fclose($handle);
    ?>我是这么做的,结果得到的文件大于实际的文件大小.而且得到的文件还格式还被破坏了.
    ACDsee都打不开.帮你顶一下.
      

  4.   

    TO:xiaotao5(小涛)
    试一下就知道行不行了。TO: xizi2002(☆☆戏☆子☆☆) 
    php.ini中
    allow_url_fopen = On
    试试TO:allkill(傲气游) 
    两种方法都不可以,我这里得到的都是2.32K的文件(内容也是一样的),而原文件是4.35K。
      

  5.   

    $handle = fopen("test2.gif", "wb");对于菲文本文件,都要采用二进制读写的方式才可以。下面的foreach不行的,是针对文本文件的。--------
    你用你的代码拷贝一个 文本文件,应该可以通过的,:)
      

  6.   

    copy函数是可以使用url的,理论上应当能够生成文件。
    建议楼主看看是否有别的地方有问题。
      

  7.   

    TO:goodname(CSDN新版论坛总版主) 
    我的就是使用WB参数。
    不知道别的地方有问题是什么意思?
    我把文件复制下来放在我的网站上读取就是很正常的。
      

  8.   

    <?php
    copy("http://qqshow-item.tencent.com/1448/9/00/abc.gif","tes2.gif");
    ?>
    理论上这样作是可以的。
      

  9.   

    类似的是可以的,
    如果
    http://qqshow-item.tencent.com/1448/9/00/
    这个后面没有具体的参数的话,那么应当取默认叶面,可是默认叶面一般都是文本格式的
    你存成一个图片不妥。
      

  10.   

    这个都知道.但是怎么怎么复制为二进制文件呢?
    TO tntxhy (落日使者)
    我的到文件大小是4.39k.居然比实际的大.迷惑啊!
      

  11.   

    TO : goodname(CSDN新版论坛总版主) 
    你测试一下这个
    http://qqshow-item.tencent.com/1448/9/00/
    返回的是什么?就是那个图片。和http://qqshow-item.tencent.com/1448/9/00/00.gif是一样的。使用http://qqshow-item.tencent.com/1448/9/00/00.gif我也测试过,不行。
    奇怪的是诸如:
    http://qqshow-item.tencent.com/2286/9/00/
    同样的代码是可行的。
    这个我想应该是否是PHP的BUG?
      

  12.   

    http://qqshow-item.tencent.com/1448/9/00/

    http://qqshow-item.tencent.com/1448/9/00/00.gif
    我都测试过了跟另存图片的生成的文件字节数完全相同,都是4463个字节测试代码:
    <?
    $url="http://qqshow-item.tencent.com/1448/9/00/00.gif";
    copy($url,"c:\\0.gif");
    ?>
      

  13.   

    http://qqshow-item.tencent.com/1448/9/00/

    http://qqshow-item.tencent.com/1448/9/00/00.gif
    我都测试过了跟另存图片的生成的文件一样,都是4463个字节测试代码:
    <?
    $url="http://qqshow-item.tencent.com/1448/9/00/00.gif";
    copy($url,"c:\\0.gif");
    ?>
      

  14.   

    我都测试了,都不行。
    我的PHP版本是4.3.2,是从4.3.1升级的。
    不过很奇怪的是phpinfo()输出的竟然是:
    PHP Version 4.3.1 
    但是
    _SERVER["SERVER_SIGNATURE"]却是<address>Apache/2.0.46 (Win32) PHP/4.3.2 Server at 202.112.131.130 Port 80</address>,大家的是这样么?会不会和这个有关系?
      

  15.   

    up一下,高手帮忙看看。这个是否是PHP的BUG呢?
      

  16.   

    测试程序
    <?
    $url="http://qqshow-item.tencent.com/1448/9/00/00.gif";
    copy($url,"c:\\0.gif");
    ?>
    生成的0.gif为4463字节,跟另存该图片字节数完全一样。--------
    我把我的机器的配置我放到主页上,供给感兴趣的朋友参考一下。p.s.我的机器配置不是最优的,我已经转到java&jsp开发了,所以配置都是一些基本的配置,
    用到什么我就修改相关配置,呵呵,其实php很久没有研究了,惭愧。
      

  17.   

    如果php.ini修改配置为
    allow_url_fopen = Off
    则有如下错误
    Warning: copy() [function.copy]: URL file-access is disabled in the server configuration in E:\WebSite\php\test\zz.php on line 22Warning: copy(http://qqshow-item.tencent.com/1448/9/00/00.gif) [function.copy]: failed to create stream: no suitable wrapper could be found in E:\WebSite\php\test\zz.php on line 22
      

  18.   

    楼上的两位朋友, 用我给的2行程序运行一下,描述一下问题。
    然后
    你们传一下
    <?
    phpinfo();
    ?>
    这句话生成的静态配置文件,有空跟你们共同研究1下,:)
      

  19.   

    http://www.freeipb.com/phpinfo.zip
    里面有我用你的测试程序得到的图片和PHPINFO的输出。
    劳烦帮忙
      

  20.   

    goodname(CSDN新版论坛总版主) 
    劳驾阁下多多帮忙。很需要尽快解决这个问题。
      

  21.   

    大致看了一下
    php.ini这项关闭掉就可以了
    magic_quotes_gpc = On
    改作
    magic_quotes_gpc = Off
    我打开这项后生成的图片文件跟你的一抹一样
    你关闭后看一下。
      

  22.   

    :(
    我的关闭以后仍然生成同样的文件……
    而且,我试了在2K3 SERVER下用APACHE 2.0.46+PHP 4.3.2,使用CGI模式。关闭这一项之后,得到的也是同样的图片。
    另,有时候会出现如下警告:
    Warning: copy(http://qqshow-item.tencent.com/1448/9/00/00.gif): failed to open stream: HTTP request failed!  in F:\dev\test.php on line 3
      

  23.   

    我机器上的这个配置几乎未作任何修改。如果你有条件的话,重新配置一下php,只要注意一下
    magic_quotes_gpc = Off
    (大概默认的就是这个)
    然后测试一下,看看是否可以成功。换台机器看一下
    ---------------------------------------------------你提供一下php.ini和httpd.conf的内容。以及他们的版本。你得页面显示,感觉是module方式,而你说是cgi方式。有些奇怪。猜测大概http.conf里面关于
    支持php的地方的配置的错误吧?
      

  24.   

    我昨天晚上测试了一下,觉得是那个配置的原因,今天又试了一下;居然不行了,晕倒。你测试一下别的网站的图片;我这里别的网站的图片可以,唯独tencent的那张不行。我得开始工作了,晚上有空再测。
      

  25.   

    多谢goodname(CSDN新版论坛总版主) 的热心帮忙。
    个人认为不是我配置的问题,因为2K3 SERVER上是我完全重新安装的PHP 4.3.2+APACHE 2.0.46 CGI模式。如你所说,只是修改了magic_quotes_gpc = Off。仍然是不行。
    XP下的的确是模块方式,PHPINFO的输出有一些问题,所以我才改用2K3 SERVER试了。
    暂时就这样吧,问题我想到用别的办法解决了。
    很感谢大家的帮助,个人认为可能是一个BUG,有兴趣的人可以继续测试,帖子就此结了。