> 백엔드 개발 > PHP 튜토리얼 > PHP 使用file_get_contents下载图片 使用变量出问题 自己输入链接则正常

PHP 使用file_get_contents下载图片 使用变量出问题 自己输入链接则正常

WBOY
풀어 주다: 2016-06-06 20:07:49
원래의
1140명이 탐색했습니다.

<code>(....用正则提取与拼凑链接的代码...)
$urlimg='http://xxx.com';
$img_file = file_get_contents($urlimg);
file_put_contents('test.jpg', $img_file);</code>
로그인 후 복사
로그인 후 복사

重新写一下问题。
我用上面这样的代码来下载图片。
但是file_get_contents($urlimg)直接这样写,发现下载图片失效。
但我用echo $urlimg 输出地址,然后手动写上地址 file_get_contents('http://xxx.com'),却正常。
同样是从$urlimg中出来的,只是自己手动写了一下,却没问题了。也都是纯文本的变量。
找不到问题出现的地方。

----更新

我断断续续连续试了好几天,结果刚描述问题的时候,想起来会不会有编码的问题。各种输出看看变量里到底存的是什么。将$urlimg变量内容保存到txt文件时,才发现,链接中&符号在采集下来时是写成&amp;amp,所以直接访问导致出错。但是这样的输出在网页上并没显示问题。自己替换一遍后就没问题了。

问题已经解决 怎么结束问题呢?

回复内容:

<code>(....用正则提取与拼凑链接的代码...)
$urlimg='http://xxx.com';
$img_file = file_get_contents($urlimg);
file_put_contents('test.jpg', $img_file);</code>
로그인 후 복사
로그인 후 복사

重新写一下问题。
我用上面这样的代码来下载图片。
但是file_get_contents($urlimg)直接这样写,发现下载图片失效。
但我用echo $urlimg 输出地址,然后手动写上地址 file_get_contents('http://xxx.com'),却正常。
同样是从$urlimg中出来的,只是自己手动写了一下,却没问题了。也都是纯文本的变量。
找不到问题出现的地方。

----更新

我断断续续连续试了好几天,结果刚描述问题的时候,想起来会不会有编码的问题。各种输出看看变量里到底存的是什么。将$urlimg变量内容保存到txt文件时,才发现,链接中&符号在采集下来时是写成&amp;amp,所以直接访问导致出错。但是这样的输出在网页上并没显示问题。自己替换一遍后就没问题了。

问题已经解决 怎么结束问题呢?

变量赋值放到缓冲区里,看看php有关ob的内容
贴一个最近写的二维码的,参考一下

<code>//开启缓存
ob_start();
$url = base64_encode($value);
$imgPath ="http://pan.baidu.com/share/qrcode?w=280&amp;amp;h=280&amp;amp;url="$url; //png图片
$origin = ImageCreateFromPNG($imgPath);
//生成图片
imagepng($origin);
//存入变量
$img = ob_get_contents(); 
$value = iconv("UTF-8", "GBK", $value);
//写入文件
$handle = fopen($dir_path.'/'.$value.'.png','w'); 
fwrite($handle, $img);
fclose($handle);
//关闭缓冲区并不输出,这里看具体需求调整
ob_end_clean();</code>
로그인 후 복사

使用curl

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿