Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2017, 16:11
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Загрузка изображения с сайта PHP
Здравствуйте! Подскажите, пожалуйста, загружаю картинки с сайта с помощью:
$link = "http://site.ru/img.gif";
  $file = file_get_contents($link);
  file_put_contents("site.jpg", $file);

Как сделать, чтобы значение переменной $link бралось из текстового файла?
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2017, 16:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
чтобы значение переменной $link бралось из текстового файла
Чем этот вопрос/задача отличается от недавней вашей темы о бане?
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2017, 16:42
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Пробовала, не получилось, сейчас сделала так:
$file = file_get_contents('file.txt');
copy($file,"site.jpg");
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2017, 16:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$file = file_get_contents('file.txt'); - а если там несколько путей будет прописано? А если если и один, но в конце есть пробел и т.п.?

Что у вас за сайт, в котором куча разного распихана по папкам и файлам?
Ответить с цитированием
  #5 (permalink)  
Старый 18.06.2017, 17:03
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Цитата:
а если там несколько путей будет прописано? А если если и один, но в конце есть пробел и т.п.?
Путь будет только один, пробела не может быть, т.к., такой путь система не примет (проверяется корректность ответа, при добавление ссылки, если корректно, то записывается, если нет, то нет, возвращает на исправление). Файлы одноразовые, отрабатывают и удаляются, поэтому не использую БД.
Ответить с цитированием
  #6 (permalink)  
Старый 18.06.2017, 17:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если в файле записан один путь и корректный, то все будет работать. Может возникать ошибка при такой операции, если обертка URL не поддерживает перезапись существующих файлов.

Проверьте что возвращают функции, это же несложно сделать выводом на экран.

Сообщение от Sonya
Файлы одноразовые, отрабатывают и удаляются, поэтому не использую БД.
А БД, что исключительно для вечного? Кроме того есть и сессия.
Ответить с цитированием
  #7 (permalink)  
Старый 18.06.2017, 17:32
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

У меня сейчас работает. если допущен пробел в начале, то система не принимает (хотя можно и обрезать), а если в конце, то там хоть три пробела - все равно работает.
Цитата:
Может возникать ошибка при такой операции, если обертка URL не поддерживает перезапись существующих файлов.
читала, то же самое по мануалу, но до конца не поняла, это же на "моей стороне" у меня путь к файлу не является URL.
А что есть более надежный вариант?
Ответить с цитированием
  #8 (permalink)  
Старый 18.06.2017, 17:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
если допущен пробел в начале, то система не принимает (хотя можно и обрезать), а если в конце, то там хоть три пробела - все равно работает
Не надо надеяться на авось, есть trim().

Сообщение от Sonya
у меня путь к файлу не является URL
А это тогда как понять - http://site.ru/img.gif? Если вы таким образом копируете свои же файлы, то это не есть хорошо, ибо это требует открытия соединения, что есть дополнительные расходы.

Сообщение от Sonya
читала, то же самое по мануалу, но до конца не поняла
Читайте о настройках, будет просветление. )
Ответить с цитированием
  #9 (permalink)  
Старый 18.06.2017, 17:49
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 273

Цитата:
Не надо надеяться на авось, есть trim().
, trim() так я его и имела ввиду, написав "(хотя можно и обрезать)".
Цитата:
http://site.ru/img.gif
, вот это и не поняла, по мануалу, пишут о пути к целевому, а не исходному файлу, А как избежать, любых "подводных камней", есть такой вариант?

Последний раз редактировалось Sonya, 18.06.2017 в 17:59.
Ответить с цитированием
  #10 (permalink)  
Старый 18.06.2017, 17:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sonya
вот это и не поняла, по мануалу, пишут о пути к целевому, а не исходному файлу
Дока:

bool copy ( string $source , string $dest [, resource $context ] )

Копирует файл source в файл с именем dest.

Список параметров

source - путь к исходному файлу (что копируем).

dest - путь к целевому файлу. Если dest является URL, то операция копирования может завершиться ошибкой, если обертка URL не поддерживает перезаписывание существующих файлов (куда копируем).

То есть и об источнике, и о цели все написано.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает загрузка изображения fenix_63 Node.JS 1 04.08.2016 15:03
Оптимизация изображения с внешнего сайта TheDude (X)HTML/CSS 2 25.10.2014 09:28
Загрузка изображения на сервер Apelcun77 AJAX и COMET 1 28.04.2014 09:06
background resize IceDvl jQuery 4 25.04.2014 17:54
Ребят как передать значение из php в src название изображения! SpiritDark Элементы интерфейса 4 14.05.2012 14:02