Sujet: [PHP] Copy() ne copie plus ...
10/02/2010 @ 16:02:25: Ppxl: [PHP] Copy() ne copie plus ...
Voilà, autant en faire un petit post si ca peux servir.

Avant :
Un script PHP contenant la fonction Copy() pour récupérer des images sur un autre serveur distant, passant simplement par le protocole http.

Mais un jour :
Voilà que cette machine bien spécifique s'est mise à jour avec PHP 5.2.12 (sait-on jamais que ce soit lié)

Maintenant :
La fonction copy, pour ces fichiers distants, ne fonctionne plus du jour au lendemain et ressort des "PHP Warning: copy(): Unable to access http://site.be/image.jpg in xxx.php".


Pourquoi donc??? Pareil chez qqn d'autre???

@
10/02/2010 @ 16:04:39: kortenberg: [PHP] Copy() ne copie plus ...
Et quand tu fais à la main, ça marche?
10/02/2010 @ 16:07:14: zion: [PHP] Copy() ne copie plus ...
Euh rien en vue sur la doc.

Quand tu va voir bêtement le fichier en HTTP (ou avec Curl) tu as accès?
Tu as le contrôle sur le site.be, il t'a pas banni?
10/02/2010 @ 16:18:09: Ppxl: [PHP] Copy() ne copie plus ...
Oui, par d'autres moyens tel que :
- wget en ligne de commande
- une copie par une autre fonction telle que fopen (mais plus long et du chipotage pour rien)
- ou encore imagecreatejpeg (mais qui coupe le script n'importe ou à cause de l'utilisation de mémoire)
- ...
Les images sont accessibles. C'est visiblement la fonction copy qui s'est décidée à bugger toute seule depuis cet update là.
26/11/2010 @ 10:23:55: antp: [PHP] Copy() ne copie plus ...
up, j'ai le même problème :ddr555:
php 4.4.9 sur un mutualisé ovh, ça marchait
php 5.3.3 sur mon serveur, ça ne marche plus
ils ont changé un truc dans une 5.x ? Je ne trouve rien :confused: je suis retombé ici en cherchant sur Google :lol:


edit: en safe mode, mais avec allow_url_fopen = On
si ça se trouve le bug n'est pas encore corrigé... http://bugs.php.net/bug.php?id=46888
je fais quoi ? :tinostar:
26/11/2010 @ 10:29:05: zion: [PHP] Copy() ne copie plus ...
Tu le fais à la main avec Curl? :tinostar:
26/11/2010 @ 13:03:09: antp: [PHP] Copy() ne copie plus ...
Pour remplacer copy, j'ai fait ceci :

  1. function CopyRemote($url$dest
  2.   $data = file_get_contents($url); 
  3.   if($data === FALSE
  4.     return false
  5.   if(file_put_contents($dest$data) === FALSE
  6.     return false
  7.   return true
  8. }


Ça marche. En attendant qu'ils corrigent le bug de copy en safe mode...
Retour