Массив Php для файла в виде массива

Обновлено: 21.11.2024

(PHP 4, PHP 5, PHP 7)

file — считывает весь файл в массив

Описание

Считывает весь файл в массив.

Примечание.

Вы можете использовать file_get_contents() для возврата содержимого файла в виде строки.

Параметры

Путь к файлу.

URL-адрес можно использовать в качестве имени файла с этой функцией, если включена оболочка fopen. См. fopen() для более подробной информации о том, как указать имя файла. См. Поддерживаемые протоколы и оболочки для получения ссылок на информацию о возможностях различных оболочек, заметок об их использовании и информации о любых предопределенных переменных, которые они могут предоставлять.

Необязательные флаги параметров могут быть одной или несколькими из следующих констант: FILE_USE_INCLUDE_PATH Поиск файла в include_path. FILE_IGNORE_NEW_LINES Не добавлять новую строку в конце каждого элемента массива FILE_SKIP_EMPTY_LINES Пропускать пустые строки

Ресурс контекста, созданный с помощью функции stream_context_create().

Примечание. Поддержка контекста была добавлена ​​в PHP 5.0.0. Описание контекстов см. в разделе Потоки.

Возвращаемые значения

Возвращает файл в виде массива. Каждый элемент массива соответствует строке в файле с прикрепленным символом новой строки. При ошибке file() возвращает FALSE .

Примечание:

Каждая строка результирующего массива будет включать окончание строки, если только не используется FILE_IGNORE_NEW_LINES, поэтому вам все равно нужно использовать rtrim(), если вы не хотите, чтобы окончание строки присутствовало.

Примечание. Если PHP неправильно распознает окончания строк при чтении файлов на компьютере Macintosh или созданных им, включение параметра конфигурации во время выполнения auto_detect_line_endings может помочь решить проблему.

Ошибки/Исключения

Выдает ошибку уровня E_WARNING, если файл не существует.

Журнал изменений

< td>file() стал безопасным для двоичных файлов
Версия Описание
4.3.0

Примеры

Мы представим способ записи массива в файл на PHP с помощью функций print_r() и file_put_contents(). Этот метод записывает указанный массив в указанный файл в системе.

Мы также представим способ печати массива в файл PHP с помощью функций print_r() и fwrite(). Мы используем функцию fopen() для создания файла.

Мы представим постоянное решение для отображения всех ошибок PHP, изменив файл php.ini. Два упомянутых выше метода не помогут отобразить ошибки синтаксического анализа, такие как отсутствие фигурных скобок и точек с запятой.

Используйте функции print_r() и file_put_contents() для записи массива в файл в PHP

Этот метод может создать массив и использовать функцию print_r() для возврата массива и использовать функцию file_put_content() для загрузки массива в файл. Функция print_r() принимает в качестве параметров массив для печати и логическое значение. Логическое значение определяет, будет ли возвращен массив. Значение по умолчанию неверно. Функция file_put_contents() принимает путь к файлу в качестве первого параметра. Второй параметр — это содержимое, которое будет загружено в файл.

Например, создайте ассоциативный массив. Ассоциативный массив — это тип массива, в котором ключами являются строки, а не числа. Создайте ключи как name , age и bike . Назначьте значения Jack , 24 и fireblade в качестве значения ключей. Присвойте массив переменной $b . Используйте функцию print_r() и возьмите параметры $b и логическое значение true. Затем напишите функцию file_put_contents() и укажите файл filename.txt в качестве первого параметра и функцию print_r() выше в качестве второго параметра.

В приведенном ниже примере функция print_r() возвращает информацию о массиве. Он не печатает элементы на веб-странице. Файл filename.txt будет создан в корневом каталоге, где печатается массив. Прочтите print_r() в руководстве по PHP, чтобы узнать больше об этой функции.

Используйте функции fopen() , print_r() и fwrite() для записи массива в файл в PHP

Мы можем использовать метод fwrite() для записи массива в файл. Этот метод создает файл с возможностью записи в каталоге с помощью функции fopen(). Мы можем создать массив и использовать функцию print_r() для возврата массива и использовать функцию fwrite() для записи массива в файл. Функция print_r() принимает в качестве параметров массив для печати и логическое значение.

Используйте функцию fopen() для создания файла file.txt с w в качестве второго параметра. Назначьте функцию fopen() переменной $fp. Используйте функцию print_r() и возьмите параметры $b и логическое значение true. Затем напишите функцию fwrite() и укажите переменную $fp в качестве первого параметра и функцию print_r() выше в качестве второго параметра.

В приведенном ниже примере функция fopen() создает файл file.txt в корневом каталоге. Массив записывается в файл с помощью функции fwrite(). Обратитесь к руководству по PHP, чтобы узнать больше о функции fwrite().

Используйте функции fopen() , var_export() и fwrite() для записи массива в файл

В этом методе мы используем функцию var_export() вместо функции print_r(), чтобы вернуть массив, который необходимо распечатать. Функция var_export() принимает массив для печати и логическое значение в качестве параметров, как и в функции print_r(). Мы создаем доступный для записи файл в каталоге с помощью функции fopen(). Мы используем функцию fwrite() для записи массива в файл, используя массив и функцию var_export() в качестве параметров. Функция var_export() возвращает допустимый PHP-код указанного параметра.

Например, напишите функцию fwrite() и укажите переменную $fp в качестве первого параметра и функцию var_export(), указанную выше, в качестве второго параметра. Укажите переменную $b и логическое значение true в качестве параметров функции var_export().

В приведенном ниже примере функция var_export() приводит к другому результату с точки зрения структуры, а не функции print_r(). Массив, напечатанный функцией var_export(), является действительным кодом PHP и может быть выполнен, в отличие от вывода, сгенерированного функцией print_r(). Пожалуйста, обратитесь к Руководству по PHP, чтобы узнать о функции var_export().

Статьи DelftStack написаны такими же фанатами программного обеспечения, как и вы. Если вы также хотите внести свой вклад в DelftStack, написав платные статьи, вы можете посетить страницу «Написать для нас».

Я бы хотел, чтобы файл выглядел точно так же, как выглядит такой код.

print_r ($abc); предполагая, что $abc является массивом.

Есть ли для этого однострочное решение, а не обычное для каждого образа?

P.S. В настоящее время я использую сериализацию, но хочу сделать файлы читаемыми, так как читаемость с сериализованными массивами довольно сложна.

13 ответов 13

Либо var_export, либо set print_r для возврата вывода вместо его печати.

Затем вы можете сохранить $results с помощью file_put_contents . Или вернуть его непосредственно при записи в файл:

var_export лучше, если вы хотите сохранить файл в синтаксисе php. print_r возвращает [m] => обезьяна, но var_export возвращает 'm' => 'обезьяна'

@Wold использует FILE_APPEND для этого примера: file_put_contents('filename.txt', print_r($b, true), FILE_APPEND); он добавит их в конец файла без перезаписи каждый раз. Кроме того, вы можете изменить его на: print_r($b, true) . "\n", чтобы добавить дополнительный разрыв строки или новую строку.

Просто используйте print_r ; ) Прочтите документацию:

Если вы хотите получить вывод print_r() , используйте возвращаемый параметр. Если для этого параметра установлено значение TRUE, print_r() будет возвращать информацию, а не печатать ее.

Итак, это одна из возможностей:

По моему опыту, var_export оказался лучшим решением, так как он заключает переменную массива в кавычки, поэтому лучше обрабатывается при использовании include/require для доступа к значениям массива

file_put_contents($file, print_r($array, true), FILE_APPEND)

Сделайте это быстро и просто:

Вы можете попробовать это, $myArray как массив

Я только что написал эту функцию для вывода массива в виде текста:

Должен выводить красиво отформатированный массив.

Остерегайтесь пользовательского ввода.

Этот скрипт был создан для внутреннего использования.

Если вы собираетесь использовать это для публичного использования, вам потребуется добавить дополнительную проверку данных, чтобы предотвратить внедрение скрипта.

Это не защита от дурака, и его следует использовать только с надежными данными.

Следующая функция выводит что-то вроде:

вот функция (примечание: функция в настоящее время отформатирована для реализации oop.)

В качестве альтернативы вы можете использовать этот скрипт, который я тоже написал некоторое время назад:

Это удобно для копирования и вставки частей массива.

(Это было бы практически невозможно сделать с сериализованным выводом)

Не самая чистая функция, но она выполняет свою работу.

Этот вывод будет выглядеть следующим образом:

Также позаботьтесь о вводе данных пользователем. Вот код.

Насколько я знаю, print_r не выводит данные в формате, который можно скопировать и вставить как рабочий код php. Это отформатирует вывод таким образом, чтобы его можно было скопировать и вставить как рабочий массив.

Однако оператору необходимо записать массив в том виде, в котором он находится в файле. Я зашел на эту страницу, чтобы найти решение, в котором я могу записать массив в файл, а затем легко прочитать его позже, снова используя php.

Я сам нашел решение, используя json_encode, поэтому любой другой ищет то же самое, вот код:

Вот что я узнал за последние 17 часов, что решило мою проблему при поиске похожего решения.

ресурсы:

Как я понял выше, $arr[fruit] может находиться внутри " " (двойные кавычки) и быть принят PHP как строка для дальнейшей обработки.

Второй ресурс — это код в одном из ответов выше:

Это вторая вещь, которую я не знал, FILE_APPEND.

Я пытался получить содержимое из файла, отредактировать нужные данные и обновить файл новыми данными, но после удаления старых данных.

Теперь мне нужно только знать, как удалить данные из файла перед добавлением обновленных данных.

О других решениях:

Просто так, чтобы это могло быть полезно другим людям; когда я пробовал var_export или Print_r или Serialize или Json.Encode, я либо получал специальные символы, такие как => или ; или ' или [] в файле или какая-то ошибка. Перепробовал слишком много всего, чтобы запомнить все ошибки. Поэтому, если кто-то захочет попробовать их еще раз (возможно, сценарий отличается от моего), он может ожидать ошибок.

О чтении файла, редактировании и обновлении:

Я использовал функцию fgets() для загрузки файлового массива в переменную ($array), а затем использовал unset($array[x]) (где x обозначает желаемый номер массива, 1,2,3 и т. д.), чтобы удалить определенные множество. Затем используйте array_values() для переиндексации и загрузки массива в другую переменную, а затем используйте цикл while и вышеприведенные решения для вывода массива (без каких-либо специальных символов) в целевой файл.

Добро пожаловать в учебник по чтению файлов в PHP. Да, верно, насколько сложным может быть чтение файлов в PHP? Вы будете удивлены... Это не так просто, как некоторые могут подумать.

  1. Прочитать файл в строку – $contents = file_get_contents("FILE");
  2. Читать файл в массив – $array = file("FILE");
  3. Используйте cURL для получения файла с другого сервера.
    • $curl = curl_init("http://site.com/");
    • curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    • $data = curl_exec($curl);
    • curl_close($curl);
  4. Откройте файловый поток и прочитайте его построчно.
    • $stream = fopen("ФАЙЛ", "r");
    • пока(($line=fgets($stream))!==false)
    • Чтение и прямой вывод – readfile("FILE");
    • Непосредственно загружать файл в скрипт – включать «ФАЙЛ»; требуется "ФАЙЛ";

Это краткий обзор распространенных методов, но давайте рассмотрим несколько примеров в этом руководстве. Читайте дальше!

ⓘ Я включил zip-файл со всем примером кода в начале этого руководства, поэтому вам не нужно копировать и вставлять все… Или если вы просто хотите сразу же погрузиться.

БЫСТРЫЕ СЛАЙДЫ

СОДЕРЖАНИЕ

СКАЧАТЬ И ПРИМЕЧАНИЯ

Во-первых, вот ссылка для скачивания всех примеров кодов.

БЫСТРЫЕ ЗАМЕЧАНИЯ

Если вы заметили ошибку, не стесняйтесь комментировать ниже. Я тоже стараюсь отвечать на короткие вопросы, но это один человек против всего мира... Если вам срочно нужны ответы, посмотрите мой список веб-сайтов, чтобы получить помощь по программированию.

СКАЧАТЬ ПРИМЕР КОДА

Нажмите здесь, чтобы загрузить весь пример кода. Я выпустил его под лицензией MIT, так что не стесняйтесь строить на его основе или использовать в своем собственном проекте.

ЧИТАТЬ ФАЙЛЫ В PHP

Хорошо, теперь давайте рассмотрим различные способы чтения файлов в PHP.

1) ЧИТАТЬ ФАЙЛ В СТРОКУ

Здесь нет ничего сложного, просто обратите внимание, что file_get_contents() может извлекать содержимое из файла или URL-адреса. Хотя это просто, будьте особенно осторожны, чтобы не читать большие файлы с помощью этого... Вы столкнетесь с ошибкой «недостаточно памяти» и, возможно, вызовете некоторые проблемы на сервере.

2) ЧИТАТЬ ФАЙЛ В МАССИВ

Это еще один простой. Но вместо простой строки file() будет считываться в массив, где каждый элемент будет отдельной строкой. Еще раз обратите внимание, не пытайтесь читать большие файлы с помощью этого.

3) ЗАГРУЖКА

CURL означает "URL-адрес клиента" и, говоря простым языком, "вызовы между серверами". Некоторые из вас, ребята, могут подумать: «Какого черта, разве это не окольный способ сделать file_get_contents() ? Ну нет. CURL на самом деле предлагает множество опций и элементов управления — он даже может получать файлы с FTP-сервера. Оставлю ссылки ниже, если вы заинтересованы.

4) ЧИТАТЬ ФАЙЛ ПОСТРОЧНО

Описанные выше 3 метода приведут к проблемам с памятью при работе с большими файлами. Поэтому, чтобы решить эту проблему, мы можем использовать fgets() и вместо этого читать построчно.

5) ПОТОК ФАЙЛА

Следующий метод немного отличается от остальных. Вместо того, чтобы читать файл в строки и массивы, он напрямую выводит его.Очень полезно, когда нужно принудительно загрузить или передать большие файлы.

6) ВКЛЮЧАТЬ ИЛИ ТРЕБОВАТЬ

Возможно, вы слышали о включениях и требованиях с первого дня изучения PHP. Да, на самом деле их можно использовать для файлов любого типа.

ОБЗОР И ССЫЛКИ

Это все, что касается этого руководства, и вот некоторые дополнения и ссылки, которые могут оказаться полезными.

РЕЗЮМЕ

РУКОВОДСТВО НА ЮТУБЕ

Шпаргалка

КОНЕЦ

Спасибо, что прочитали, и мы подошли к концу этого краткого руководства. Я надеюсь, что это помогло решить ваши проблемы с йогой при чтении файлов, и если вам есть чем поделиться с этим руководством, пожалуйста, не стесняйтесь комментировать ниже. Удачи и удачного кодирования!

Читайте также: