我用 php 的 curl 采集的图片为0kb, 请大侠帮忙看看, 谢了. 本帖最后由 fixlife 于 2012-02-03 13:03:28 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $tp = @fopen('demo.gif', 'wb');fwrite($tp, $rawdata);fclose($tp); 我用readfile采集没有问题, 不过, 担心被采集的网站会发现来路网站, 所以, 改用curl采集,谢谢您 $url = 'http://avatar.profile.csdn.net/1/8/E/2_chenshuliang.jpg';$ch = curl_init ($url);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);curl_setopt($ch, CURLOPT_TIMEOUT,60); $rawdata=curl_exec($ch);curl_close ($ch);$tp = fopen('test.jpg', 'wb');fwrite($tp, $rawdata);fclose($tp);windows环境测试成功。 感谢指点刚刚测试了一下, 采集到的图片还是 0 kb我用的是centos另外, 您在例子中提到的 $tp = fopen('test.jpg', 'wb');我用的是变量 $tp = fopen($filename, 'wb');$filename 的样式为: 服务器绝对路径+图片名称.后缀真着急, 不知道问题到底在哪里呢? 另外请问, 这个 $rawdata 到底返回什么东西? 刚刚测试了一下, curl 连普通网页也抓不到, 生成的文件 都是 0kb 就用这个做样板吧:http://www.google.com.hk/intl/zh-CN/images/logo_cn.png 难道是我的系统有问题?比如, curl 自身没有配置正确 等? 或者变通一下这个问题:假如我用 readfile 采集对方网站的话, 对方是否能够发现来路?如果能发现, 有没有办法隐藏? 这段代码没有任何问题的,在ubuntu下$url = 'http://www.google.com.hk/intl/zh-CN/images/logo_cn.png';$ch = curl_init($url);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);curl_setopt($ch, CURLOPT_TIMEOUT, 60);$rawdata = curl_exec($ch);curl_close($ch);$tp = fopen('test.png', 'wb');fwrite($tp, $rawdata);fclose($tp);curl可以模仿来路,很多此类函数都可以模仿来路 这个没有难度的,但是你无法伪造ip.如果大量采集什么的该发现的人家还是要发现。 你可以把$rawdata变量echo出来看看有没有东西。如果有值就说明是写文件出问题了。如果没值就说明是curl出问题了。 试验了一下, 输出: NULL代码如下:<?php$url = 'http://www.google.com.hk/intl/zh-CN/images/logo_cn.png';$ch = curl_init($url);curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);curl_setopt($ch, CURLOPT_TIMEOUT, 60);$rawdata = curl_exec($ch);curl_close($ch);var_dump($rawdata);?> 以下这段代码是什么意思,帮忙解读下 权限管理问题,感觉矛盾! 請教ftp相關函數 php excel cookie和session有效时间问题 大家好,帮忙一个上传问题 phpe.net超越php被黑后留在首页的 js 动画代码!动画效果不错 紧急求救!!!!!!!!!!!!! 疯了,学PHPLIB不会是这样吧?:( 求教:php中如何清空指定目录 《php项目开发全程实录》第七章学校图书管理系统 php 读取一个csv数据 再查看另一个csv中是否存在此商品编号,不存在插入 2个csv中列名不一样 应该怎么处理?
fwrite($tp, $rawdata);
fclose($tp);
我用readfile采集没有问题, 不过, 担心被采集的网站会发现来路网站, 所以, 改用curl采集,谢谢您
$url = 'http://avatar.profile.csdn.net/1/8/E/2_chenshuliang.jpg';
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT,60);
$rawdata=curl_exec($ch);
curl_close ($ch);
$tp = fopen('test.jpg', 'wb');
fwrite($tp, $rawdata);
fclose($tp);
windows环境测试成功。
感谢指点刚刚测试了一下, 采集到的图片还是 0 kb我用的是centos另外, 您在例子中提到的 $tp = fopen('test.jpg', 'wb');我用的是变量 $tp = fopen($filename, 'wb');$filename 的样式为: 服务器绝对路径+图片名称.后缀真着急, 不知道问题到底在哪里呢?
另外请问, 这个 $rawdata 到底返回什么东西?
就用这个做样板吧:http://www.google.com.hk/intl/zh-CN/images/logo_cn.png
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$rawdata = curl_exec($ch);
curl_close($ch);
$tp = fopen('test.png', 'wb');
fwrite($tp, $rawdata);
fclose($tp);
curl可以模仿来路,很多此类函数都可以模仿来路 这个没有难度的,但是你无法伪造ip.如果大量采集什么的该发现的人家还是要发现。
如果有值就说明是写文件出问题了。
如果没值就说明是curl出问题了。
试验了一下, 输出: NULL代码如下:<?php
$url = 'http://www.google.com.hk/intl/zh-CN/images/logo_cn.png';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$rawdata = curl_exec($ch);
curl_close($ch);
var_dump($rawdata);
?>