file_put_contents&file_get_contents损害了我的形象

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;

enter image description here

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.