18.06.2017, 16:11
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
Загрузка изображения с сайта PHP
Здравствуйте! Подскажите, пожалуйста, загружаю картинки с сайта с помощью:
$link = "http://site.ru/img.gif";
$file = file_get_contents($link);
file_put_contents("site.jpg", $file);
Как сделать, чтобы значение переменной $link бралось из текстового файла?
|
|
18.06.2017, 16:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Sonya
|
чтобы значение переменной $link бралось из текстового файла
|
Чем этот вопрос/задача отличается от недавней вашей темы о бане?
|
|
18.06.2017, 16:42
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
Пробовала, не получилось, сейчас сделала так:
$file = file_get_contents('file.txt');
copy($file,"site.jpg");
|
|
18.06.2017, 16:53
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
$file = file_get_contents('file.txt'); - а если там несколько путей будет прописано? А если если и один, но в конце есть пробел и т.п.?
Что у вас за сайт, в котором куча разного распихана по папкам и файлам?
|
|
18.06.2017, 17:03
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
Цитата:
|
а если там несколько путей будет прописано? А если если и один, но в конце есть пробел и т.п.?
|
Путь будет только один, пробела не может быть, т.к., такой путь система не примет (проверяется корректность ответа, при добавление ссылки, если корректно, то записывается, если нет, то нет, возвращает на исправление). Файлы одноразовые, отрабатывают и удаляются, поэтому не использую БД.
|
|
18.06.2017, 17:16
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Если в файле записан один путь и корректный, то все будет работать. Может возникать ошибка при такой операции, если обертка URL не поддерживает перезапись существующих файлов.
Проверьте что возвращают функции, это же несложно сделать выводом на экран.
Сообщение от Sonya
|
Файлы одноразовые, отрабатывают и удаляются, поэтому не использую БД.
|
А БД, что исключительно для вечного? Кроме того есть и сессия.
|
|
18.06.2017, 17:32
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
У меня сейчас работает. если допущен пробел в начале, то система не принимает (хотя можно и обрезать), а если в конце, то там хоть три пробела - все равно работает.
Цитата:
|
Может возникать ошибка при такой операции, если обертка URL не поддерживает перезапись существующих файлов.
|
читала, то же самое по мануалу, но до конца не поняла, это же на "моей стороне" у меня путь к файлу не является URL.
А что есть более надежный вариант?
|
|
18.06.2017, 17:41
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Sonya
|
если допущен пробел в начале, то система не принимает (хотя можно и обрезать), а если в конце, то там хоть три пробела - все равно работает
|
Не надо надеяться на авось, есть trim().
Сообщение от Sonya
|
у меня путь к файлу не является URL
|
А это тогда как понять - http://site.ru/img.gif? Если вы таким образом копируете свои же файлы, то это не есть хорошо, ибо это требует открытия соединения, что есть дополнительные расходы.
Сообщение от Sonya
|
читала, то же самое по мануалу, но до конца не поняла
|
Читайте о настройках, будет просветление. )
|
|
18.06.2017, 17:49
|
Профессор
|
|
Регистрация: 07.07.2016
Сообщений: 281
|
|
Цитата:
|
Не надо надеяться на авось, есть trim().
|
, trim() так я его и имела ввиду, написав "(хотя можно и обрезать)".
, вот это и не поняла, по мануалу, пишут о пути к целевому, а не исходному файлу, А как избежать, любых "подводных камней", есть такой вариант?
Последний раз редактировалось Sonya, 18.06.2017 в 17:59.
|
|
18.06.2017, 17:59
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Sonya
|
вот это и не поняла, по мануалу, пишут о пути к целевому, а не исходному файлу
|
Дока:
bool copy ( string $source , string $dest [, resource $context ] )
Копирует файл source в файл с именем dest.
Список параметров
source - путь к исходному файлу (что копируем).
dest - путь к целевому файлу. Если dest является URL, то операция копирования может завершиться ошибкой, если обертка URL не поддерживает перезаписывание существующих файлов (куда копируем).
То есть и об источнике, и о цели все написано.
|
|
|
|