che si può fare facilmente questo modo
$txt_file = file_get_contents('path/to/file.txt');
$rows = explode("\n", $txt_file);
array_shift($rows);
foreach($rows as $row => $data)
{
//get row data
$row_data = explode('^', $data);
$info[$row]['id'] = $row_data[0];
$info[$row]['name'] = $row_data[1];
$info[$row]['description'] = $row_data[2];
$info[$row]['images'] = $row_data[3];
//display data
echo 'Row ' . $row . ' ID: ' . $info[$row]['id'] . '<br />';
echo 'Row ' . $row . ' NAME: ' . $info[$row]['name'] . '<br />';
echo 'Row ' . $row . ' DESCRIPTION: ' . $info[$row]['description'] . '<br />';
echo 'Row ' . $row . ' IMAGES:<br />';
//display images
$row_images = explode(',', $info[$row]['images']);
foreach($row_images as $row_image)
{
echo ' - ' . $row_image . '<br />';
}
echo '<br />';
}
Per prima cosa aprire il file di testo utilizzando la funzione di file_get_contents()
e poi si taglia la stringa sui caratteri di nuova riga utilizzando la funzione explode()
. In questo modo otterrai un array con tutte le righe separate. Quindi con la funzione array_shift()
è possibile rimuovere la prima riga, in quanto è l'intestazione.
Dopo aver ottenuto le righe, è possibile scorrere l'array e inserire tutte le informazioni in un nuovo array denominato $info
. Sarai quindi in grado di ottenere informazioni per riga, a partire dalla riga zero. Ad esempio, ad esempio $info[0]['description']
sarebbe Some text goes here
.
Se si desidera inserire anche le immagini in un array, è possibile utilizzare anche explode()
. Basta usare questo per la prima fila: $first_row_images = explode(',', $info[0]['images']);
fonte
2011-03-14 13:52:42
@Michiel Pater grazie per il headsup, il problema è che quando ricevo le immagini, var_dump() appena uscite: IMMAGINI 123IMAGES 123IMAGES 123IMAGES 123IMAGES 123IMAGES 123IMAGES 123 tutte le idee? – terrid25
@ terrid25: Hai provato il mio nuovo codice (aggiornato)? Se sì, per favore pubblica il codice che stai usando per 'var_dump()'. –
@ terrid25: Sto usando il seguente codice: 'var_export (explode (',', $ info [1] ['images']));'. Emette: 'array (0 => 'image_1.jpg', 1 => 'image_2.jpg',)'. –