J'ai écrit un petit code pour lire dans un fichier texte plat et l'afficher. Mon problème est que l'un des champs a beaucoup de texte et aussi des retours de ligne. Mon code utilise la ligne return est un délimiteur et passe à l'enregistrement suivant.Comment dire exploser pour ignorer les flux de ligne?
Comment puis-je lui dire de ne diviser que par le délimiteur et d'ignorer les retours de ligne?
Exemple de code J'utilise:
$delimiter = chr(1);
$fp = fopen('app2','r');
if (!$fp) {echo 'ERROR: Unable to open file.</table></body></html>'; exit;}
$loop = 0;
while (!feof($fp)) {
$loop++;
$line = fgets($fp,2048); //use 2048 if very long lines
$field[$loop] = explode ($delimiter, $line);
echo '
<tr>
<td>'.$field[$loop][0].'</td>
<td>'.$field[$loop][1].'</td>
<td>'.$field[$loop][2].'</td>
<td>'.$field[$loop][3].'</td>
<td>'.$field[$loop][4].'</td>
<td>'.$field[$loop][5].'</td>
<td>'.$field[$loop][6].'</td>
<td>'.$field[$loop][7].'</td>
<td>'.$field[$loop][8].'</td>
<td>'.$field[$loop][9].'</td>
<td>'.$field[$loop][10].'</td>
<td>'.$field[$loop][11].'</td>
<td>'.$field[$loop][12].'</td>
<td>'.$field[$loop][13].'</td>
<td>'.$field[$loop][14].'</td>
<td>'.$field[$loop][15].'</td>
<td>'.$field[$loop][16].'</td>
</tr>';
$fp++;
}
fclose($fp);
?>
Vous pouvez voir ce qu'il fait ici http://www.smartphonesoft.com/fred/xmlfeed/test/itunes_to_mysql.php
Votre lien nécessite une authentification. – relet
Vous aurez probablement besoin d'une bonne classe d'analyse CSV pour gérer cela. –
Vous n'avez peut-être pas besoin d'une classe d'analyse * CSV *, PHP a [l'analyse syntaxique CSV simple est intégrée] (http://us2.php.net/manual/fr/function.fgetcsv.php). – Charles