Импорт картинки по ссылке

  1. function copy_image_from_url($url) {
  2. if (list(, , $type) = getimagesize($url)) {
  3. $type_ext = array('ext' ,'gif', 'jpg', 'png', 'jpeg');
  4. if (!$type) {
  5. return false;    
  6. }
  7. $dir = 'img'; // указать свою, желательно от корня сервера
  8. if (!is_dir($dir)) {
  9. mkdir($dir);    
  10. }
  11. $newfile = basename(rtrim($url, '/'));
  12. $ext = mb_strtolower(end(explode('.', $newfile)));
  13. if (!in_array($ext, $type_ext)) {
  14. $newfile .= '.' . $type_ext[$type];    
  15. }
  16. if (file_exists($dir . DIRECTORY_SEPARATOR . $newfile)) {
  17. $newfile .= '-' . time() . '.' . $type_ext[$type];
  18. }
  19. $uploadfil = new SplFileObject($url, 'rb');
  20. $file = new SplFileObject($dir . DIRECTORY_SEPARATOR . $newfile, 'w');
  21. $file->setFlags(SplFileObject::SKIP_EMPTY);
  22. if ($file->flock(LOCK_EX)) {
  23. $file->ftruncate(0);
  24. while (!$uploadfil->eof()) {
  25. $file->fwrite($uploadfil->fgets());
  26. }
  27. }
  28. $file->flock(LOCK_UN);
  29. if (file_exists($dir . DIRECTORY_SEPARATOR . $newfile)) {
  30. return true;    
  31. }
  32. } else {
  33. return false;    
  34. }    
  35. }
По просьбе одного товарища
примеры
  1. copy_image_from_url('http://koenig.h2m.ru/test/downloads/index.php?f=54');
  2. copy_image_from_url('http://annimon.com/theme/webdefault/images/logo_new.png');
  3. copy_image_from_url('http://koenig.h2m.ru/test/img/sm/zvezdy.gif');
  4. copy_image_from_url('http://seclub.org/img/touch-logo.png');
  5. copy_image_from_url('http://johncms.com/theme/varg/images/logo.gif');

Реклама

Мы в соцсетях

tw tg yt gt