【发布时间】:2013-06-30 07:24:08
【问题描述】:
代码很简单;
$url = 'https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/s720x720/417959_454038631356352_2061694564_n.jpg';
file_put_contents($path, file_get_contents($url));
这将导致写入以下图像;
注意它与the original 相比是如何“损坏”的。
这是在我的 Windows 8 开发机器上安装的新 PHP。我的扩展启用如下;
extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_oci8_11g.dll
extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
值得注意的是,我已启用 openssl 以支持 HTTPS,并启用 curl。 allow_url_fopen 已启用(当然,如果不是这种情况,它甚至不会走到这一步)。
有谁知道什么会对我的图像造成这种损坏?
【问题讨论】:
-
可能是缓存问题..清除缓存..删除tem文件..简单重启后重试
-
@Baba:谢谢。我已经重新启动,但问题仍然存在:(。
-
好的,试试
CURLOPT_FILEsee example -
@Baba:我已经尝试过了,但仍然得到完全相同的失真 (gist.github.com/anonymous/5921268)。
curl_error不显示任何内容(空字符串)。
标签: php https file-get-contents