Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #19978 > unrolled thread
| Started by | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| First post | 2015-10-09 16:48 +0200 |
| Last post | 2015-10-10 15:03 +0000 |
| Articles | 7 — 4 participants |
Back to article view | Back to it.comp.www.php
valore serializzato su unica riga (niente PHP_EOL) alex <1j9448a02@lnx159sneakemail.com.invalid> - 2015-10-09 16:48 +0200
Re: valore serializzato su unica riga (niente PHP_EOL) fmassei@gmail.com - 2015-10-09 07:59 -0700
Re: valore serializzato su unica riga (niente PHP_EOL) Leonardo Serni <lserni@gmail.com> - 2015-10-09 18:45 +0200
Re: valore serializzato su unica riga (niente PHP_EOL) alex <1j9448a02@lnx159sneakemail.com.invalid> - 2015-10-09 19:05 +0200
Re: valore serializzato su unica riga (niente PHP_EOL) Leonardo Serni <lserni@gmail.com> - 2015-10-09 19:09 +0200
Re: valore serializzato su unica riga (niente PHP_EOL) alex <1j9448a02@lnx159sneakemail.com.invalid> - 2015-10-09 22:30 +0200
Re: valore serializzato su unica riga (niente PHP_EOL) Alessandro Pellizzari <shuriken@amiran.it> - 2015-10-10 15:03 +0000
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2015-10-09 16:48 +0200 |
| Subject | valore serializzato su unica riga (niente PHP_EOL) |
| Message-ID | <mv8k40$a20$1@speranza.aioe.org> |
$lines = array(
serialize(new Test()),
serialize('test'),
serialize(112)
);
$linesString = implode(PHP_EOL, $lines);
file_put_contents(__DIR__.'/test.txt', $linesString);
Come potete vedere, ogni riga contiene un valore serializzato.
Come potete vedere, per unire le righe in un'unica stringa (che verrà
salvata su file) ho usato PHP_EOL come separatore.
Ma come potete notare, affinchè non succedano pasticci (come avrete
intuito), è *assolutamente obbligatorio* che ciascuna riga, o meglio,
ciascun valore serializzato *non* contenga il PHP_EOL che ho usato per
separare le righe.
Quindi siamo sicuri che la funzione serialize() non produca stringhe
multi-line?
Non so se mi sono spiegato...
[toc] | [next] | [standalone]
| From | fmassei@gmail.com |
|---|---|
| Date | 2015-10-09 07:59 -0700 |
| Message-ID | <a33e91aa-adad-4a64-9734-db5dbf59e021@googlegroups.com> |
| In reply to | #19978 |
On Friday, October 9, 2015 at 4:48:36 PM UTC+2, alex wrote: > Quindi siamo sicuri che la funzione serialize() non produca stringhe > multi-line? > Non solo potrebbe contenere caratteri di fine linea, teoricamente serialize ritorna uno stream di bytes, non una stringa di testo, quindi potrebbe pure contenere caratteri non stampabili, null-byte incluso. Ciao!
[toc] | [prev] | [next] | [standalone]
| From | Leonardo Serni <lserni@gmail.com> |
|---|---|
| Date | 2015-10-09 18:45 +0200 |
| Message-ID | <4lrf1b52vrtlvbumns3knkpv2rmn1lv7qs@L.Serni> |
| In reply to | #19978 |
On Fri, 9 Oct 2015 16:48:35 +0200, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:
>$lines = array(
> serialize(new Test()),
> serialize('test'),
> serialize(112)
>);
$oneLine = base64_encode(gzcompress(serialize($whatever)));
>Quindi siamo sicuri che la funzione serialize() non produca stringhe
>multi-line?
No. Basta tu provi a serializzare un testo con tre righe, e...
gzcompress non è indispensabile, ma IMHO vale la pena.
Leonardo
--
Now suppose -just suppose- I could show you a way to
manufacture a wall that would do the same job... but
was only one inch thick.
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2015-10-09 19:05 +0200 |
| Message-ID | <mv8s44$u35$1@speranza.aioe.org> |
| In reply to | #19981 |
Il 09/10/2015 18:45, Leonardo Serni ha scritto:
> On Fri, 9 Oct 2015 16:48:35 +0200, alex
> <1j9448a02@lnx159sneakemail.com.invalid> wrote:
>
>> $lines = array(
>> serialize(new Test()),
>> serialize('test'),
>> serialize(112)
>> );
>
> $oneLine = base64_encode(gzcompress(serialize($whatever)));
>
>> Quindi siamo sicuri che la funzione serialize() non produca stringhe
>> multi-line?
>
> No. Basta tu provi a serializzare un testo con tre righe, e...
>
Oh cavolo l'avevo ignorato
> gzcompress non è indispensabile, ma IMHO vale la pena.
Quindi base64_encode(serialize($whatever)) dovrebbe bastare?
[toc] | [prev] | [next] | [standalone]
| From | Leonardo Serni <lserni@gmail.com> |
|---|---|
| Date | 2015-10-09 19:09 +0200 |
| Message-ID | <c2tf1b98tpdb5ebepdgu2cm5a214funmdf@L.Serni> |
| In reply to | #19982 |
On Fri, 9 Oct 2015 19:05:10 +0200, alex <1j9448a02@lnx159sneakemail.com.invalid> wrote: >> gzcompress non è indispensabile, ma IMHO vale la pena. >Quindi base64_encode(serialize($whatever)) dovrebbe bastare? Sì. Per stringhe brevi o contenenti dati compressi, addirittura ti conviene pure. Viene fuori una riga unica, roba tipo eNortjI0t1LySM3JyecKzy/KSdHj4tLS0lKyBgBdZAaV che puoi riespandere con base64_decode (, gzuncompress) e unserialize. Leonardo -- Now suppose -just suppose- I could show you a way to manufacture a wall that would do the same job... but was only one inch thick.
[toc] | [prev] | [next] | [standalone]
| From | alex <1j9448a02@lnx159sneakemail.com.invalid> |
|---|---|
| Date | 2015-10-09 22:30 +0200 |
| Message-ID | <mv985p$psl$1@speranza.aioe.org> |
| In reply to | #19983 |
Il 09/10/2015 19:09, Leonardo Serni ha scritto: > On Fri, 9 Oct 2015 19:05:10 +0200, alex > <1j9448a02@lnx159sneakemail.com.invalid> wrote: > >>> gzcompress non è indispensabile, ma IMHO vale la pena. > >> Quindi base64_encode(serialize($whatever)) dovrebbe bastare? > > Sì. Per stringhe brevi o contenenti dati compressi, addirittura ti conviene > pure. > > Viene fuori una riga unica, roba tipo > > eNortjI0t1LySM3JyecKzy/KSdHj4tLS0lKyBgBdZAaV > > che puoi riespandere con base64_decode (, gzuncompress) e unserialize. > > Leonardo > grazie!!!
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2015-10-10 15:03 +0000 |
| Message-ID | <d7snmuFkn27U3@mid.individual.net> |
| In reply to | #19982 |
Il Fri, 09 Oct 2015 19:05:10 +0200, alex ha scritto: > Quindi base64_encode(serialize($whatever)) dovrebbe bastare? Se non hai l'estrema esigenza di avere un file in puro ASCII, ma la vedo dura visto che stai usando serialize e non json_encode, ti conviene semplicemente salvare il serialize della struttura grezza: $lines = array( new Test(), 'test', 112 ); file_put_contents(__DIR__.'/test.txt', serialize($linesString)); Tutto il resto (serialize dei pezzi, base64, ecc.) lo trovo abbastanza inutile, mentre un gzcompress ci può stare, ma dipende da quali prestazioni ti aspetti e dall'hardware che hai. Bye.
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.www.php
csiph-web