S'échapper de CSV
J'ai besoin de stocker une chaîne de caractères dans une base de données MySQL. Les valeurs seront utilisés par la suite dans un fichier CSV. Comment puis-je échapper à la chaîne de sorte qu'il est CSV-safe? Je suppose que j'ai besoin d'échapper à la suivante: la virgule, apostrophe, guillemets doubles.
PHP addslashes
fonction n':
guillemet simple ('), guillemet double ( " ), (barre oblique inverse) et NUL (l'octet NUL).
Donc qui ne fonctionne pas. Des Suggestions? Je préfère ne pas essayer de créer une sorte de regex solution.
Aussi, j'ai besoin d'être en mesure de ne pas encoder.
Vous devez vous connecter pour publier un commentaire.
Utilisation
fputcsv()
à écrire, etfgetcsv()
à lire.fputcsv()
n'est pas toujours nécessaire, surtout si vous n'avez pas besoin d'écrire un fichier, mais que vous voulez retourner le CSV comme une réponse HTTP.Tout ce que vous devez faire est de double quote chaque valeur et d'échapper les guillemets doubles répéter un devis double à chaque fois que vous en trouver un.
Voici quelques exemples:
Comme vous pouvez le voir l'apostrophe n'a pas besoin de s'échapper.
Suit un travail complet exemple:
Si vous obtenez une erreur est juste parce que vous utilisez une ancienne version de PHP. Le fixer en déclarant les tableaux avec leur ancienne syntaxe et le remplacement de la fonction lambda avec un classique.
fputcsv
si vous faites votre descripteur de fichier comme ceci:$fh = @fopen( 'php://output', 'w' );
et ajoutez les en-têtes. source\r\n
. tools.ietf.org/html/rfc4180str_replace()
accepte également un tableau de chaînes de caractères, vous permettant de déplacer la double cité de la valeur d'emballage enimplode
Comme 3v4l.org/YWTI4$line .= '"' . implode('","', str_replace('"', '""', $values)) . '"' . "\r\n";
Pour ceux de vous qui tentent de nettoyer les données à l'aide de PHP et de sortie au format CSV, ce qui peut être fait à l'aide de PHP fputcsv() la fonction sans avoir à écrire dans un fichier en tant que tel:
Ne pas stocker les données CSV échappé dans la base de données. Échapper lorsque vous exportez au format CSV à l'aide de
fputcsv
. Si vous êtes à la stocker CSV échappé, vous êtes essentiellement de stockage de déchets, à toutes fins autres que CSV exportation.