Besoin d'aide pour un petit script dont je ne suis pas l'auteur
Posté : 21 juin 2022, 16:49
Bonjour à tous,
Je me permets de vous contacter aujourd'hui car je travaille dans une société de routage et suite à un formatage de PC, le script PHP qui permettait de remplacer certains caractères dans un fichier Excel (remplacement de l'astérisque par un "g") ne fonctionne plus.
Ne connaissant pas vraiment le PHP, je ne sais trop comment résoudre les erreurs qui s'affichent.
Le code du fichier PHP :
Par contre, je n'arrive pas a envoyer une image pour les erreurs rencontrées.
Lors de la précédente réinstallation (2020), je n'avais pas eu ce problème. J'avais juste eu le souci de la taille du fichier bloquée à 2Mo que j'avais modifié dans le php.ini. Je suis avec Wamp64 et la version 7 de Php.
Pourriez-vous m'aider ?
Merci par avance.
Je me permets de vous contacter aujourd'hui car je travaille dans une société de routage et suite à un formatage de PC, le script PHP qui permettait de remplacer certains caractères dans un fichier Excel (remplacement de l'astérisque par un "g") ne fonctionne plus.
Ne connaissant pas vraiment le PHP, je ne sais trop comment résoudre les erreurs qui s'affichent.
Le code du fichier PHP :
Code : Tout sélectionner
<html>
<body>
<?php
//var_dump($_POST);
if ($_FILES['monfichier']['error']) {
switch ($_FILES['monfichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier d�passe la limite autoris�e par le serveur (fichier php.ini) !";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier d�passe la limite autoris�e dans le formulaire HTML !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a �t� interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoy� a une taille nulle !";
break;
}
}
else {
// $_FILES['nom_du_fichier']['error'] vaut 0 soit UPLOAD_ERR_OK
// ce qui signifie qu'il n'y a eu aucune erreur
}
$nomOrigine = $_FILES['monfichier']['name'];
//var_dump($nomOrigine);
$elementsChemin = pathinfo($nomOrigine);
$extensionFichier = $elementsChemin['extension'];
$extensionsAutorisees = array("txt", "csv");
if (!(in_array($extensionFichier, $extensionsAutorisees))) {
echo "Le fichier n'a pas l'extension attendue";
}
else {
//ouverture du fichier
//var_dump($_FILES['monfichier']);
//var_dump($elementsChemin);
if(!$fp = fopen($_FILES['monfichier']['tmp_name'],"r"))
echo "Echec de l'ouverture du fichier<BR>";
else
{
//recuperation du texte dans un tableau php
echo("lecture du fichier et nettoyage<br>");
$page = "";
$index=0;
while (!feof($fp)) { //on parcourt toutes les lignes
$page[$index]= fgets($fp, 4096); // lecture du contenu de la ligne
$page[$index] = rtrim( $page[$index] );
$index++;
}
fclose($fp);
//var_dump($page[0]);
//on parcours le tableau page et on va ranger son contenu dans un nouveau tableau, plus optimis� pour le traitement
echo("decoupage par cellule<BR>");
$tableau = explode ( ";" , $page[0] );
for($index = 0 ; $index<sizeof($page) ; $index++)
{
$tableau[$index] = explode ( ";" , $page[$index] );
}
//la derniere cellule de chaque ligne � la particulatit� de contenir un retour chariot, un nettoyage est donc necessaire
//foreach($tableau as $index => $ligne)
$nblot=0;
$nbcont=0;
$nbliasse=0;
$liasse_etic=0;
$liasse_pic = array();
$liasse_physique = array();
foreach($tableau as $index_ligne=>$ligne)
{
foreach($ligne as $index_cellule=>$cellule)
{
$tableau[$index_ligne][$index_cellule] = rtrim($tableau[$index_ligne][$index_cellule]); //nettoyage des espaces en trop
switch($index_cellule)
{
case 2:
{
if($cellule == "*")
{
$tableau[$index_ligne][$index_cellule] ="l";
$nblot++;
}
break;
}
case 5:
{
if($cellule == "*")
{
$tableau[$index_ligne][$index_cellule] ="g";
$nbcont++;
}
break;
}
case 8:
{
if($cellule == "*")
{
$tableau[$index_ligne][$index_cellule] ="g";
$nbliasse++;
}
break;
}
case 12:
{
if($cellule == "*")
{
$tableau[$index_ligne][$index_cellule] ="r";
if($tableau[$index_ligne][13] == "" )
$type = "physique";
if(!empty($liasse_physique) && $liasse_physique[sizeof($liasse_physique) - 1] != $ligne [10])
$liasse_physique[] = $ligne [10];
else if(empty($liasse_physique))
$liasse_physique[] = $ligne [10];
$liasse_physique++;
}
break;
}
case 13:
{
if($cellule == "*" || $cellule == "**")
{
$tableau[$index_ligne][$index_cellule] = "z";
if(!empty($liasse_pic) && $liasse_pic[sizeof($liasse_pic) - 1] != $ligne [10])
$liasse_pic[] = $ligne [10];
else if(empty($liasse_pic))
$liasse_pic[] = $ligne [10];
$liasse_etic ++;
}
break;
}
}
}
}
//edition du rapport
echo("rapport du traitement: <BR><BR>");
echo(sizeof($tableau) - 1 ." adresses ont �t� trait�es<BR>");
echo("type campagne: ");
echo((sizeof($liasse_physique)>sizeof($liasse_etic))?"physique":"virtuel");
echo("<BR>");
echo("nombre de lots : ".$nblot."<BR>");
echo("nombre de contenants : ".$nbcont."<BR>");
echo("nombre de liasses : ".$nbliasse."<BR>");
echo("nombre de liasses physiques : ".sizeof($liasse_physique)."<BR>");
echo("nombre de liasses ETIC : ".sizeof($liasse_etic)."<BR>");
echo("liasses avec etiquettes: ");
foreach($liasse_pic as $index => $liasse)
echo ($liasse.", ");
echo("<BR>");
var_dump($tableau[0]);
echo("<BR>");
//ecriture dans un fichier
if(!$fp = fopen(str_replace( ".txt" , ".csv" , $nomOrigine),"w"))
echo "Echec de l'ouverture du fichier";
else
{
echo("ecriture dans un fichier<br>");
//on parcours le tableau contenant les adresses et on les ecrit dans le fichier de sortie
foreach($tableau as $index=>$ligne)
{
fputcsv($fp , $ligne, ';');
}
fclose($fp);
echo "traitement realise avec succes";
}
}
}
?>
</body>
</html>Lors de la précédente réinstallation (2020), je n'avais pas eu ce problème. J'avais juste eu le souci de la taille du fichier bloquée à 2Mo que j'avais modifié dans le php.ini. Je suis avec Wamp64 et la version 7 de Php.
Pourriez-vous m'aider ?
Merci par avance.