Chciałbym wydrukować tablicę do pliku.
Chciałbym, aby plik wyglądał dokładnie tak, jak wygląda taki kod.
print_r ($abc);
zakładając, że $ abc jest tablicą.
Czy istnieje jedno rozwiązanie liniowe do tego, a nie zwykłe dla każdego wyglądu.
PS - Obecnie używam serializacji, ale chcę, aby pliki były czytelne, ponieważ czytelność jest dość trudna w przypadku szeregowanych tablic.
php
serialization
Atif Mohammed Ameenuddin
źródło
źródło
implode
tablica za pomocąPHP_EOL
i zapisz wynikowy ciąg do pliku.var_export
jest lepsze, jeśli chcesz zapisać plik w składni php.print_r
powraca,[m] => monkey
alevar_export
wraca'm' => 'monkey'
Po prostu użyj
print_r
; ) Przeczytaj dokumentację :Jest to jedna możliwość:
źródło
file_put_contents($file, print_r($array, true), FILE_APPEND)
źródło
Możesz spróbować:
źródło
true
do var_export, w przeciwnym razie nie ma treści do zapisania w pliku.Szybko i prosto zrób to:
źródło
Możesz tego spróbować
$myArray
jako Arrayźródło
Właśnie napisałem tę funkcję, aby wyprowadzić tablicę jako tekst:
Powinien generować ładnie sformatowaną tablicę.
WAŻNA UWAGA:
Uważaj na dane wprowadzone przez użytkownika.
Ten skrypt został stworzony do użytku wewnętrznego.
Jeśli zamierzasz użyć tego do użytku publicznego, musisz dodać dodatkowe sprawdzanie poprawności danych, aby zapobiec wstrzyknięciu skryptu.
To nie jest głupi dowód i powinien być używany tylko z zaufanymi danymi.
Poniższa funkcja wyświetli coś takiego:
tutaj jest funkcja (uwaga: funkcja jest obecnie sformatowana do implementacji oop).
Alternatywnie możesz użyć tego skryptu, który również napisałem jakiś czas temu:
Ten jest miły do kopiowania i wklejania części tablicy.
(Byłoby to prawie niemożliwe do zrobienia z serializowanym wyjściem)
Nie najczystsza funkcja, ale wykonuje zadanie.
Ten wyświetli w następujący sposób:
Zadbaj także o wkład użytkownika. Oto kod.
źródło
wystarczy użyć
file_put_contents('file',$myarray);
file_put_contents () działa również z tablicami.źródło
Oto, czego nauczyłem się w ciągu ostatnich 17 godzin, które rozwiązały mój problem, szukając podobnego rozwiązania.
zasoby:
http://php.net/manual/en/language.types.array.php
Specyficzny kod:
To, co wziąłem z góry, $ arr [owoc] może wejść do „” (podwójne cudzysłowy) i zostać zaakceptowane przez PHP jako ciąg znaków do dalszego przetwarzania.
Drugi zasób to kod w jednej z powyższych odpowiedzi:
To druga rzecz, o której nie wiedziałem, FILE_APPEND.
To, co próbowałem osiągnąć, to pobrać zawartość z pliku, edytować pożądane dane i zaktualizować plik o nowe dane, ale po usunięciu starych danych.
Teraz muszę tylko wiedzieć, jak usunąć dane z pliku przed dodaniem zaktualizowanych danych.
O innych rozwiązaniach:
Tylko dlatego, że może być pomocny dla innych ludzi; kiedy próbowałem var_export lub Print_r lub Serialize lub Json.Encode , dostałem znaki specjalne, takie jak => lub; lub ”lub [] w pliku lub jakiś błąd. Próbowałem zbyt wielu rzeczy, aby zapamiętać wszystkie błędy. Więc jeśli ktoś może chcieć spróbować ponownie (może mieć inny scenariusz niż mój), może spodziewać się błędów.
Informacje o czytaniu pliku, edycji i aktualizacji:
Użyłem funkcji fgets (), aby załadować tablicę plików do zmiennej ($ tablica), a następnie użyłem unset ($ tablica [x]) (gdzie x oznacza żądany numer tablicy, 1,2,3 itd.), Aby usunąć konkretną tablicę. Następnie użyj array_values (), aby ponownie zindeksować i załadować tablicę do innej zmiennej, a następnie użyć pętli while i powyższych rozwiązań, aby zrzucić tablicę (bez żadnych znaków specjalnych) do pliku docelowego.
źródło
Poniżej powinno działać ładnie i bardziej czytelnie przy użyciu
<pre>
źródło
Jednak op musi napisać tablicę tak, jak jest w pliku. Wylądowałem na tej stronie, aby znaleźć rozwiązanie, w którym mogę napisać tablicę do pliku, a następnie łatwo odczytać później za pomocą php.
Znalazłem rozwiązanie samodzielnie, używając json_encode, więc każdy inny szuka tego samego, oto kod:
niż czytać
źródło
test.php
index.php
źródło