路过的php大牛,进来看看,关于远程保存图片的。

woyaodubo 2017-11-27 04:50:33

$url="http://www.netbian.com/";
$string=curl_get($url);
preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/", $string,$matches,PREG_PATTERN_ORDER);
$new_arr=$matches[3];
for($i=$_GET['i'];$i<strlen($new_arr);$i++)
{
saveto("get_img/".rand(1,1000)."_".time().".jpg",$new_arr[$i]);
//问题应该出在这里,$new_arr[$i]难道不能获取图片的url吗? 因为输出图片地址是空的,获取到的图片也是空图片。

//$new_arr=$matches[3];应该是图片url数组啊,那取数组的元素这样写$new_arr[$i]有什么问题?
}



function saveto($toname,$img_url)
{
$img_content=https_get_post($img_url);
file_put_contents($toname,$img_content);
echo "img_url:".$img_url."</br>";
}
...全文
182 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
woyaodubo 2017-12-01
  • 打赏
  • 举报
回复
哇哇哇,又是我自己解决了,看来本座的水平在不断提高了哦。
woyaodubo 2017-11-27
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
function https_get_post($url,$data=null)
{
	$curl = curl_init();//初始化一个curl会话;
	
	curl_setopt($curl,CURLOPT_URL,$url);//指定访问的url
	curl_setopt($curl, CURLOPT_HEADER,0);
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//0直接返回内容,1以文件流形式返回
	curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);//CURLOPT_SSL_VERIFYPEER 设置为FALSE 禁止 cURL 验证对等证书(peer’s certificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
	curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);//CURLOPT_SSL_VERIFYHOST 设置为 1 是检查服务器SSL证书中是否存在一个公用名(common name)。译者注:公用名(Common Name)一般来讲就是填写你将要申请SSL证书的域名 (domain)或子域名(sub domain)。 设置成 2,会检查公用名是否存在,并且是否与提供的主机名匹配。 在生产环境中,这个值应该是 2(默认值)。

if(!empty($data))//post,否则get
{
	curl_setopt($curl,CURLOPT_POST, 1);//带参数post
	curl_setopt($curl,CURLOPT_POSTFIELDS,$data);//传递数据
}
$output = curl_exec($curl);//执行curl;
curl_close($curl); // 关闭CURL会话
return $output;
}
woyaodubo 2017-11-27
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
谁知道你那自定义函数有什么问题
$url = "http://www.netbian.com/"; 
$string = file_get_contents($url); 
preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/", $string,$matches,PREG_PATTERN_ORDER);
$new_arr = $matches[3];
//print_r($new_arr);
echo file_get_contents($new_arr[1]);
定义的函数没有问题,我试过的。一直在用的
xuzuning 2017-11-27
  • 打赏
  • 举报
回复
xuzuning 2017-11-27
  • 打赏
  • 举报
回复
谁知道你那自定义函数有什么问题
$url = "http://www.netbian.com/"; 
$string = file_get_contents($url); 
preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/", $string,$matches,PREG_PATTERN_ORDER);
$new_arr = $matches[3];
//print_r($new_arr);
echo file_get_contents($new_arr[1]);
woyaodubo 2017-11-27
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
https_get_post 是什么?
$url="http://www.netbian.com/"; $string=https_get_post($url); preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/", $string,$matches,PREG_PATTERN_ORDER); $new_arr=$matches[3];//这个是数组啊 //为什么$matches[3][0]确获取不到元素?
woyaodubo 2017-11-27
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
https_get_post 是什么?
curl返回网页的字符串
xuzuning 2017-11-27
  • 打赏
  • 举报
回复
https_get_post 是什么?
woyaodubo 2017-11-27
  • 打赏
  • 举报
回复
高手高高手都哪去了?
woyaodubo 2017-11-27
  • 打赏
  • 举报
回复
一定要通过i下标来取元素,因为i要从js传过来的, 不能用foreach,
做一门精致,全面详细的 java数据结构与算法!!!让天下没有难学的数据结构,让天下没有难学的算法,不吹不黑,我们的讲师及其敬业,可以看到课程视频,课件,代码的录制撰写,都是在深夜,如此用心,其心可鉴,他不掉头发,谁掉头发???总之你知道的,不知道的,我们都讲,并且持续更新,走过路过,不要错过,不敢说是史上最全的课程,怕违反广告法,总而言之,言而总之,这门课你值得拥有,好吃不贵,对于你知识的渴求,我们管够管饱话不多说,牛不多吹,我们要讲的本门课程内容:稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式、递归与回溯、迷宫问题、八皇后问题、算法的时间复杂度、冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、基数排序(桶排序)、堆排序、排序速度分析、二分查找、插值查找、斐波那契查找、散列、哈希表、二叉树、二叉树与数组转换、二叉排序树(BST)、AVL树、线索二叉树、赫夫曼树、赫夫曼编码、多路查找树(B树B+树和B*树)、图、图的DFS算法和BFS、程序员常用10大算法、二分查找算法(非递归)、分治算法、动态规划算法、KMP算法、贪心算法、普里姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法马踏棋盘算法。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧