Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[PHP] : Suppressions de tabulations dans un fichier texte

1 réponse
Avatar
phpdev
Bnojour,
je re-poste en esperant que cette fois les modérateurs
comprendront que c'est de php qu'il s'agit!

Je dois, depuis un script PHP,traiter un fichier texte.
Ce fichier est l'export d'une BDD d'une appli spécifique.

Les champs sont séparés par des tabulations.

Ma Question :

Comment, en PHP, remplacer toutes les tabulations par des points
virgules dans ce fichier texte ??

En effet, c'est beaucoup plus simple à gérer pour moi ensuite si les
champs sont délimités par des ';'

voila ce que j'ai fait et qui ne marche pas (par d'erreurs mais pas de
changements sur le fichier) :

<?
$fichier = './export.txt';
$fd = fopen($fichier, "rb");
$contents = fread($fd, filesize($fichier));
$contents = strtr($contents, '\t', ';');
fwrite($fd,$contents);
fclose($fd);
?>

Merci de vos réponses !

1 réponse

Avatar
Guillaume Bouchard
fred wrote:


je re-poste en esperant que cette fois les modérateurs
comprendront que c'est de php qu'il s'agit!




Il manquais le mot magique 'depuis un script PHP' dans ton premier message.
Plus serieusement, je l'ai refuser car la question posé etais :

Ma question :
Comment est-ce que je fais pour changer toutes mes tabulations
en ';' ? comment "décrit-on" une tabulation ? par son code ASCII?

Tu bloquais donc sur la tabulation et non pas sur le reste du code. Bref
j'ai peut etre eu tord, mais bon.


Comment, en PHP, remplacer toutes les tabulations par des points
virgules dans ce fichier texte ??




str_replace est ton amie
www.php.net/str_replace

En effet, c'est beaucoup plus simple à gérer pour moi ensuite si les
champs sont délimités par des ';'




Je ne sais pas pourquoi, mais si tu le dit...


$contents = fread($fd, filesize($fichier));
$contents = strtr($contents, 't', ';');




Sache que les caracteres speciaux ne sont comprit que entre doubles
quotes, donc la tabluation c'est "t" et qu'il existe une fonction mieux
pour cela, str_replace.

$truc = str_replace("t",';',$truc);

-- Guillaume.