Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Получение файла в массив из ссылки
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Получение файла в массив из ссылки

Страниц (1): [1]
 

1. psfdek - 25 Июля, 2014 - 11:54:27 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $fnames=date("d.m.y_H:i:s");
  2. $mime=$_FILES['uploadfile']['type'];
  3. $fileformat ='.csv';
  4.  
  5. if ($mime!='text/csv' && $mime!='application/vnd.ms-excel' && $mime!='application/vnd.ms-excel' && $mime!='application/csv' && $mime!='text/x-csv' && $mime!='text/comma-separated-values' && $mime!='application/octet-stream'){
  6.     echo 'Неверный тип файла';
  7. } else {
  8.     $uploaddir = '../../../files/import/';
  9.     $_FILES['uploadfile']['name']=$fnames.$fileformat;
  10.     $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
  11.     // Копируем файл из каталога для временного хранения файлов:
  12.     if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
  13.     {
  14.     echo "";
  15.     }
  16.     else { echo "Ошибка! Не удалось загрузить файл на сервер!"; exit; }
  17.  
  18. }

Вот php скрипт который получает файл csv от формы и затем его с помощью цикла записываю в mysql и сохраняю в каталоге в формате дата.csv. Всё работает норм!

Но теперь необходимо получать файл csv находящийся по ссылке на другом сайте, но я не знаю как это сделать.
Вроде как надо использовать "file('http://test.ru/file.csv');", но как ему присвоить имя потом и как его сохранить на сервер после занесения в бузу через цикл?
С получением из формы это выглядет так: $_FILES['uploadfile']['name']=$fnames.$fileformat;

Вот пример ссылки файла:
http://test[dot]ru/crm_access.php?us[dot][dot][dot]nt&region=58
2. Ch_chov - 25 Июля, 2014 - 12:05:00 - перейти к сообщению
А зачем его сохранять на сервере, если вы уже вытащили из него данные в БД?

Можете предварительно скачать файл на сервер с помощью file_get_contents, но правильней будет использовать для этого curl.

Учтите что file и file_get_contents не будут работать с удалёнными файлами если в конфигурации PHP выключена опция allow_url_fopen.
3. psfdek - 25 Июля, 2014 - 12:13:41 - перейти к сообщению
Что то я не понял..
А нет примеров у Вас?
4. Ch_chov - 25 Июля, 2014 - 12:20:52 - перейти к сообщению
Есть, но я не понял чего вы не поняли.
5. psfdek - 25 Июля, 2014 - 12:23:14 - перейти к сообщению
как принять файл с помощью curl запихать его в массив.
И потом сохранить с нужным мне именем и расширением.
получая файл от формы преобразовывал его с помощью fgetcsv в массив, учитывая разделитель. А как теберь с этим быть?
6. esterio - 25 Июля, 2014 - 12:39:11 - перейти к сообщению
погуглив можно найи много примеров
http://bit[dot]ly/wTnQn0
7. Ch_chov - 25 Июля, 2014 - 12:41:15 - перейти к сообщению
Таких примеров полно, в т.ч. здесь на форуме. Начните с уроков http://www.php.su/lessons/?lesson_11
Если сохраните файл на диск, то использовать тот же самый код для чтения CSV файла.
8. psfdek - 25 Июля, 2014 - 12:47:31 - перейти к сообщению
я гуглил, но не понял как в массив засунуть данные из csv.

 

Powered by ExBB FM 1.0 RC1