解决方案 »
- 搭建nginx+PHP环境后访问php网页nginx.exe报错
- php只能在本地服务器网站跟目录创建目录吗?不能在其它盘创建吗?
- php自动下载文件
- mysql查询
- 请教xuzuning无限分类排序的问题,谢谢
- sql 语句执行~ 多内容时~ 为何出错?
- 关于 document.write 的问题
- amoeba搭建mysql集群时数据插入时出现这个错误
- 怎样有php实现个人简历的显示
- 在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);
?>