PHP caractère de fin de ligne d'un fichier csv
Quelle est la bonne façon de spécifier le caractère de fin de ligne d'un fichier CSV avec PHP. J'ai ce script pour écrire le fichier CSV.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
include_once("phpshared.php");
function get_node_urls( $nodeid ) {
$nodes = new SimpleXMLElement('linkcards.xml', null, true);
$nodesarray = $nodes->xpath("//LINKCARD[@ID='$nodeid']");
$linkstring = '';
$node = $nodesarray[0];
$i = 0;
foreach($node->LINKS->LINK as $url)
{
$linkstring .= $i.','.$url['ID'].','.$url->TITLE.','.$url->URL.'\r\n';
$i++;
}
echo $linkstring;
}
echo get_node_urls(trim($_REQUEST['nodeid']));
?>
Si je charge $linkstring
il n'y a pas de retour chariot à la fin de chaque ligne. Les lignes doivent être:
0, id1, http://link1.com 1, id2, http://link2.com
Au lieu de cela ils sont les suivants:
0, id1, http://link1.com\r\n1, id2, http://link2.com
Le CSV reader lit cette ligne comme:
id1 http://link1.com\r\n1
Est là une autre façon d'écrire la fin de la ligne pour un CSV?
OriginalL'auteur user823527 | 2011-11-23
Vous devez vous connecter pour publier un commentaire.
\r\n
doit être entre"
au lieu de'
de sorte que les séquences d'échappement sera interprété (voir la documentation):Super! Qui ont travaillé. Merci.
+1 Arrggghhhh! Merci beaucoup, la fin de la ligne de manutention en PHP est absolument ridicule.
OriginalL'auteur Tim Cooper
Après avoir chercher sur le web, j'ai trouvé que le problème est dû à la détection Automatique de Fin de Ligne n'étant pas activer. Il suffit de le mettre sur votre code et cela devrait fonctionner. Il a travaillé pour moi.
Avec le auto_detect activer, vous pouvez analyser le fichier comme un fichier normal à l'aide de
Sur mon cas, je suis déjà l'analyse du CSV lignes à l'aide de str_getcsc
OriginalL'auteur Nauro Rezende Jr