За последние 24 часа нас посетили 74212 программистов и 10165 роботов. Сейчас ищут 2696 программистов ...

При подгрузке переменных из файла код перестает работать

Тема в разделе "PHP для новичков", создана пользователем Shtek, 16 май 2018.

  1. Shtek

    Shtek Новичок

    С нами с:
    28 апр 2018
    Сообщения:
    10
    Симпатии:
    0
    Всем привет! Сохраняю картинки на сервер с помощью кода:
    PHP:
    1. $url= "https://belpodium.ru/tmp/generate_pic/products/188/311728-main.jpg!740!987!cut.jpg";
    2. $name= "Odezhda_bolshih_razmerov1.jpg";
    3.  
    4. copy ( $url, $name );
    все работает и сохраняется.

    Как только начинаю подгружать переменную через файл вот так:

    PHP:
    1. $file_array = file("img_file.txt");
    2. $url= $file_array[0];
    3. $name= $file_array[1];
    4.  
    5. copy ( $url, $name );
    Все перестает работать. Подскажите пожалуйста где я что делаю не так?

    пример txt фаила в закрепе
     

    Вложения:

    • img_file.txt
      Размер файла:
      118 байт
      Просмотров:
      5
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.862
    Симпатии:
    657
    FILE_IGNORE_NEW_LINES
    --- Добавлено ---
    Смысл что-то хранить в текстовом файле не совсем понятен.
     
    Shtek нравится это.
  3. NightTrolley

    NightTrolley Новичок

    С нами с:
    9 май 2018
    Сообщения:
    8
    Симпатии:
    1
    Потому
    Попробуй использовать файл php и в нем сохранять переменные и дальше подгружать через
    require_once.
     
    Shtek нравится это.
  4. Shtek

    Shtek Новичок

    С нами с:
    28 апр 2018
    Сообщения:
    10
    Симпатии:
    0
    Спасибо! Попробую этот вариант.
    А все же есть у меня в коде какая то ошибка? Интересно где ошибся.
     
  5. NightTrolley

    NightTrolley Новичок

    С нами с:
    9 май 2018
    Сообщения:
    8
    Симпатии:
    1
    Мне бы ошибку увидеть
     
  6. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    503
    Симпатии:
    58
    так напишите текст ошибки.
    Текст ошибки это же не набор букв, там вся суть ошибки описана
     
  7. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Попробуй либо в
    PHP:
    оберни переменный из массива т.е.

    PHP:
    1. $file_array = file("img_file.txt");
    2. $url= trim($file_array[0]);
    3. $name= trim($file_array[1]);
    4. copy ( $url, $name );
    либо, как уже написали выше, используй FILE_IGNORE_NEW_LINES
    PHP:
    1. $file_array = file("img_file.txt", FILE_IGNORE_NEW_LINES);
    2. $url= trim($file_array[0]);
    3. $name= trim($file_array[1]);
    4. copy ( $url, $name );
     
  8. Shtek

    Shtek Новичок

    С нами с:
    28 апр 2018
    Сообщения:
    10
    Симпатии:
    0
    Ошибку не выдает, просто не сохраняет изображение на сервер.
     
  9. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    ошибка вот эта как я понял
    Код (Text):
    1. Warning: copy(https://belpodium.ru/tmp/generate_pic/products/188/311728-main.jpg!740!987!cut.jpg): failed to open stream: No such file or directory in J:\OPEN_SERVER\domains\lessons.PHP\37\script_1.php on line 12
    --- Добавлено ---
    у тебя проблема в самом текстовом файле, я переписал его и всё нормально.
    --- Добавлено ---
    Вот код, всё работает:
    PHP:
    1. <?php
    2.  
    3. $file_array = file("test.dat", FILE_IGNORE_NEW_LINES);
    4.  
    5. echo "<pre>";
    6. print_r($file_array);
    7. echo "</pre>";
    8.  
    9. $url = $file_array[0];
    10. $name = $file_array[1];
    11.  
    12. //$file = file_get_contents($url);
    13. //file_put_contents($name, $file);
    14. copy($url, $name);
    15.  
    16.  
    17. ?>
    --- Добавлено ---
    вот архив там всё работает
     

    Вложения:

    • 37.zip
      Размер файла:
      698 байт
      Просмотров:
      1
    Shtek нравится это.
  10. Shtek

    Shtek Новичок

    С нами с:
    28 апр 2018
    Сообщения:
    10
    Симпатии:
    0
    Сработало, спасибо! А файл обязательно должен быть расширением dat? Проблема была в расширении файла?
     
  11. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Пожалуйста.

    Нет. Можешь переименовать в TXT. Будет также нормально работать.
     
  12. Shtek

    Shtek Новичок

    С нами с:
    28 апр 2018
    Сообщения:
    10
    Симпатии:
    0
    А в чем же была проблема
    А в чем же была проблема? Это чтоб на будущее не делать ошибок
     
  13. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Shtek
    Посмотрите на сообщение за номером 2.
    И описание функции file() (по ссылке из своего первого сообщения)
     
  14. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Не, проблема была не в этом, я пробовал, выбивало ошибку, там непонятно вообще что было. Я просто взял создал новый файл, вставил туда URL и NAME, запустил и заработало. Так что, что там было конкретно, не знаю. Я не люблю использовать расширение txt, как правило для тестов использую dat
     
  15. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Shtek, @AlexandrS, тогда, кроме как на BOM, который присутствует в файле грешить не на что.
    Но и флаг игнорирования "новой строки" не был лишним :)
     
  16. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    503
    Симпатии:
    58
    да BOM может много сюрпризов приподнести.
    как то было из-за него верстка на в некоторых браузерах крошилась, потому что он влез перед <!DOCTYPE html>,
    а перед доктайпом в принципе ничего быть не должно.
     
  17. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    это однозначно!