Gostaria de imprimir uma matriz em um arquivo.
Gostaria que o arquivo parecesse exatamente semelhante à aparência de um código como esse.
print_r ($abc);
assumindo que $ abc é uma matriz.
Existe alguma solução de linhas para isso, em vez de regular para cada visual.
PS - Eu atualmente uso serializar, mas quero tornar os arquivos legíveis, pois a legibilidade é bastante difícil com matrizes serializadas.
php
serialization
Atif Mohammed Ameenuddin
fonte
fonte
implode
a matrizPHP_EOL
e escreva a sequência resultante no arquivo.var_export
é melhor se você deseja salvar o arquivo na sintaxe php.print_r
retorna[m] => monkey
masvar_export
retorna'm' => 'monkey'
Apenas use
print_r
; ) Leia a documentação :Portanto, esta é uma possibilidade:
fonte
file_put_contents($file, print_r($array, true), FILE_APPEND)
fonte
Você poderia tentar:
fonte
true
a var_export, caso contrário, não há conteúdo para gravar no arquivo.Rápido e simples, faça o seguinte:
fonte
Você pode tentar isso,
$myArray
como o Arrayfonte
Acabei de escrever esta função para gerar uma matriz como texto:
Deve gerar uma matriz bem formatada.
NOTA IMPORTANTE:
Cuidado com a entrada do usuário.
Este script foi criado para uso interno.
Se você pretende usar isso para uso público, precisará adicionar alguma validação de dados adicionais para evitar a injeção de scripts.
Isso não é à prova de idiotas e deve ser usado apenas com dados confiáveis.
A seguinte função produzirá algo como:
aqui está a função (nota: a função está atualmente formatada para implementação oop.)
Como alternativa, você pode usar esse script que também escrevi há um tempo:
É bom copiar e colar partes de uma matriz.
(Seria quase impossível fazer isso com saída serializada)
Não é a função mais limpa, mas faz o trabalho.
Este produzirá da seguinte maneira:
Também cuide da entrada do usuário. Aqui está o código.
fonte
basta usar
file_put_contents('file',$myarray);
file_put_contents () também funciona com matrizes.fonte
Aqui está o que aprendi nas últimas 17 horas que resolveu meu problema enquanto procurava uma solução semelhante.
Recursos:
http://php.net/manual/en/language.types.array.php
Código Específico:
O que eu peguei acima, $ arr [fruit] pode ir dentro "" (aspas duplas) e ser aceito como string pelo PHP para processamento adicional.
Segundo recurso é o código em uma das respostas acima:
Esta é a segunda coisa que eu não sabia, FILE_APPEND.
O que eu estava tentando obter é obter o conteúdo de um arquivo, editar os dados desejados e atualizar o arquivo com novos dados, mas depois de excluir os dados antigos.
Agora só preciso saber como excluir dados do arquivo antes de adicionar dados atualizados.
Sobre outras soluções:
Apenas para que possa ser útil para outras pessoas; quando tentei var_export ou Print_r ou Serialize ou Json.Encode , obtive caracteres especiais como => ou; ou 'ou [] no arquivo ou algum tipo de erro. Tentei muitas coisas para lembrar todos os erros. Portanto, se alguém quiser tentar novamente (pode ter um cenário diferente do meu), poderá esperar erros.
Sobre a leitura de arquivos, edição e atualização:
Eu usei a função fgets () para carregar a matriz de arquivos em uma variável ($ array) e, em seguida, use unset ($ array [x]) (onde x representa o número desejado da matriz, 1,2,3 etc) para remover a matriz específica. Em seguida, use array_values () para reindexar e carregar a matriz em outra variável e, em seguida, use um loop while e as soluções acima para despejar a matriz (sem caracteres especiais) no arquivo de destino.
fonte
Abaixo Deve funcionar bem e mais legível usando
<pre>
fonte
No entanto, o op precisa escrever o array como está no arquivo. Eu cheguei nesta página para encontrar uma solução onde eu possa escrever um array em um arquivo e que possa ser facilmente lido mais tarde usando o php novamente.
Eu encontrei a solução comigo mesmo usando json_encode para que qualquer outra pessoa esteja procurando o mesmo, aqui está o código:
do que ler
fonte
test.php
index.php
fonte