The code is trivial;
$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));
This results in the following image being written;
Note how it is "damaged" compared to the original.
This is a new PHP installation on my Windows 8 Dev machine. My extensions are enabled as follows;
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
Of note, I've enabled openssl
for HTTPs support, and curl
. allow_url_fopen
is enabled (although of course, it wouldn't have got even this far if this wasn't the case).
Does anyone know what can cause this sort of damage to my images?
It works fine on my Windows 8 Dev machine + ZendServer 6 PHP 5.4.11
Probably You have some problems in Your PHP instalation/configuration. I recommend reinstall PHP.