Я хотел бы напечатать массив в файл.
Я хотел бы, чтобы файл выглядел точно так же, как выглядит этот код.
print_r ($abc);
предполагая, что $ abc является массивом.
Есть ли какое-то решение для одной линии, а не обычное для каждого взгляда.
PS - в настоящее время я использую сериализацию, но я хочу сделать файлы читаемыми, так как читаемость довольно сложно с сериализованными массивами.
php
serialization
Атиф Мухаммед Аминуддин
источник
источник
implode
массив сPHP_EOL
и записать полученную строку в файл.var_export
Лучше, если вы хотите сохранить файл в синтаксисе php.print_r
возвращается,[m] => monkey
ноvar_export
возвращается'm' => 'monkey'
Просто используйте
print_r
; ) Прочтите документацию :Так что это одна из возможностей:
источник
file_put_contents($file, print_r($array, true), FILE_APPEND)
источник
Вы можете попробовать:
источник
true
в var_export, иначе нет содержимого для записи в файл.Быстро и просто сделайте это:
источник
Вы можете попробовать это,
$myArray
как массивисточник
Я просто написал эту функцию для вывода массива в виде текста:
Должен выводить красиво отформатированный массив.
ВАЖНАЯ ЗАМЕТКА:
Остерегайтесь пользовательского ввода.
Этот скрипт был создан для внутреннего использования.
Если вы намереваетесь использовать это для публичного использования, вам нужно будет добавить дополнительную проверку данных, чтобы предотвратить внедрение скрипта.
Это не защищает от ошибок и должно использоваться только с доверенными данными.
Следующая функция выведет что-то вроде:
вот функция (примечание: функция в настоящее время отформатирована для реализации oop.)
Вы также можете использовать этот скрипт, который я также написал некоторое время назад:
Это хорошо для копирования и вставки частей массива.
(Было бы почти невозможно сделать это с сериализованным выводом)
Не самая чистая функция, но она выполняет свою работу.
Этот будет выводить следующим образом:
Также позаботьтесь о пользовательском вводе. Вот код
источник
просто используйте
file_put_contents('file',$myarray);
file_put_contents (), также работает с массивами.источник
Вот что я узнал за последние 17 часов, что решило мою проблему при поиске аналогичного решения.
Ресурсы:
http://php.net/manual/en/language.types.array.php
Специальный код:
То, что я взял выше, $ arr [fruit] может идти внутрь "" (двойные кавычки) и приниматься PHP как строка для дальнейшей обработки.
Второй ресурс - это код в одном из ответов выше:
Это вторая вещь, которую я не знал, FILE_APPEND.
То, чего я пытался добиться, - это получить содержимое из файла, отредактировать нужные данные и обновить файл новыми данными, но после удаления старых данных.
Теперь мне нужно только знать, как удалить данные из файла перед добавлением обновленных данных.
О других решениях:
Просто так, чтобы это могло быть полезно для других людей; когда я попробовал var_export или Print_r или Serialize или Json.Encode , я либо получил специальные символы, такие как => или; или 'или [] в файле или какая-то ошибка. Перепробовал слишком много вещей, чтобы запомнить все ошибки. Поэтому, если кто-то захочет попробовать их снова (может иметь другой сценарий, чем мой), он может ожидать ошибки.
О чтении файла, редактировании и обновлении:
Я использовал функцию fgets (), чтобы загрузить массив файлов в переменную ($ array), а затем использовать unset ($ array [x]) (где x обозначает желаемый номер массива, 1,2,3 и т. Д.) Для удаления конкретного массива. Затем используйте array_values () для переиндексации и загрузки массива в другую переменную, а затем используйте цикл while и приведенные выше решения для выгрузки массива (без каких-либо специальных символов) в целевой файл.
источник
Ниже должно работать хорошо и более читабельно, используя
<pre>
источник
Однако op должен записать массив в том виде, в каком он есть в файле. Я нашел эту страницу, чтобы найти решение, в котором я могу записать массив в файл, а затем легко прочитать позже, снова используя php.
Я нашел решение сам с помощью json_encode, так что кто-то еще ищет тот же код:
чем читать
источник
test.php
index.php
источник