J'ai fortement besoin de votre aide.
En fait, mon Code PHP ci-dessous permet de générer des Numéros depuis les informations du formulaire HTML renseigné ET de les télécharger dans un fichier .csv via le Header du Navigateur Web.
Mais le problème est que la gestion des Numéros prend TROP DE TEMPS et donc très Lente. Pour contourner ce problème, je voudrais donc ajouter à ce Code un traitement Asynchrone (en utilisant la Librairie Ajax AXIOS) de sorte à ce que la gestion des Numéros soit RAPIDE.
Code : Tout sélectionner
$now = gmdate("D, d M Y H:i:s");
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");
header("Last-Modified: {$now} GMT");
// force download
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
$filename = "numero.csv";
// disposition / encoding on response body
header("Content-Disposition: attachment;filename={$filename}");
header("Content-Transfer-Encoding: binary");
ob_start();
$df = fopen("php://output", 'w');
// pour mettre un entête sur le CSV
$entetes = ['Numero'];
fputcsv($df, $entetes);
// numéro de base
$numero = (isset($_POST['numField'])) ? $_POST['numField'] : 0;
// longueur souhaité (doit être plus grande que longueur de $numéro)
$longueur_total = (isset($_POST['numLength'])) ? $_POST['numLength'] : 0;
// longueur utilisé en retirant la longueur de base
$longueur = $longueur_total - strlen($numero);
// calcule de la puissance de 10 en fonction de la longueur souhaité
$max = pow(10, $longueur);
// affichage du maximun de tour de la boucle
// echo "<h1>$max</h1>";
for ($i = 0; $i < $max; $i++) {
// différence de longueur
$diff = $longueur - strlen($i);
$zero = "";
for ($a = 0; $a < $diff; $a++) {
// ajout des zéro devant
$zero .= "0";
}
// concaténation du résultat
$resultat = $numero . $zero . $i;
// effacement des zéro
$zero = "";
// affichage du résultat
$row = [$resultat];
fputcsv($df, $row);
}
fclose($df);
echo ob_get_clean();
exit(0);Ou si vous avez une autre quelconque suggestion à me faire, ça me fera plaisir. L'essentiel pour moi est de résoudre ce problème de Lenteur.
Merci d'avance.