Je cherche a exécuter un script sur un ensemble de fichier de mon repertoire afin de supprimer la dernière colonne dans des fichiers csv.
<?php
foreach (glob("class_*") as $filename){
if (($handle_result = fopen($filename, "r+")) !== FALSE)
{
if (($handle = fopen($filename, "r+")) !== FALSE) {
while (($data = fgetcsv($handle, 100, ";")) !== FALSE) {
fputcsv($handle_result, array($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7]));
}
fclose($handle);
}
fclose($handle_result);
}
}
?>
Ce sript produit une erreurRequest Timeout
Server timeout waiting for the HTTP request from the client.
J'arrive à exécuter les 2 parties du script de manière indépendante...
Je peux lister l'ensemble des fichiers répondant à mon critère :
foreach (glob("class_*") as $filename){
echo "<br> fichier : ".$filename;
}
d'un autre coté, si dans le code je remplace $filename par un nom de fichier, cela fonctionne bien.
if (($handle_result = fopen("class_toto.txt", "r+")) !== FALSE)
{
if (($handle = fopen("class_toto.txt", "r+")) !== FALSE) {
while (($data = fgetcsv($handle, 100, ";")) !== FALSE) {
fputcsv($handle_result, array($data[0], $data[1], $data[2], $data[3], $data[4], $data[5], $data[6], $data[7]));
}
fclose($handle);
}
fclose($handle_result);
}
Je n'arrive pas a comprendre pourquoi la boucle sur les nom de fichiers ne permet pas de répéter le script, sachant que cette meme boucle sans la deuxième partie du script fonctionne bien...Par avance merci pour vos lumières...