IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Optimiser le code


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut Optimiser le code
    Bonjour,

    Mon code ca marche bien mais j'aimerais bien les optimiser un peu plus...
    Est ce que vous avez des idées pour l'alléger un peu plus ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php
    	//recuperation des donnes - formulaire - input - post
     
    	$var_ville = isset($_POST["ville"]) ? trim($_POST["ville"]) : '';
     
    	$var_nom = isset($_POST["nom"]) ? trim(	$_POST["nom"]) : '';
     
    	$var_prenom = isset($_POST["prenom"]) ? trim(	$_POST["prenom"]) : '';
     
    	$var_pays = isset($_POST["pays"]) ? trim($_POST["pays"]) : '';
     
     
    	 // fonction  preg_replace
             // replacer [;] par [.,]
             // remplacer [\r\n] par [--->]
             //[\r\n] dans excel, c'est un saut à la ligne
     
    			$tb_tableau_nettoyage = array();
    			$tb_tableau_nettoyage[0] = '/;/';
    			$tb_tableau_nettoyage[1] = '/\r\n/';
     
    			$tb_tableau_replacer = array();
    			$tb_tableau_replacer[0] = '.,';
    			$tb_tableau_replacer[1] = '--->';
     
    	$var_ville = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_ville);
    		$var_nom = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_nom);
    			$var_prenom = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_prenom);
    				$var_pays = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_pays);
     
     
    	         //ecriture fichier csv
             fputs($ouvrir_FD, utf8_decode($var_ville).';'.utf8_decode($var_nom).';'.utf8_decode($var_prenom).';'.utf8_decode($var_pays).';'."\n");			
     
     
    ?>
    Merci et bonne journée

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux définir une fonction qui reprend tous tes traitements.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Salut sabotage,

    Je me demande comment je peux définir une fonction qui reprend tous tes traitements.

    Tu pourrais me donner une indice ?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ba une fonction quoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
     
    function nettoyage($chaine) {
     
    $var ="";
     
        if (isset($_POST[$var])) {
     
                {
    			$tb_tableau_nettoyage[0] = '/;/';
    			$tb_tableau_nettoyage[1] = '/\r\n/';
    			$tb_tableau_replacer[0] = '.,';
    			$tb_tableau_replacer[1] = '--->';
     
    	                $var = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $_POST[$var]);
     
                            $var = utf8_decode($var);
     
             }
     
          return $var; 
    }
     
    fputs($ouvrir_FD, nettoyage('ville').';'.nettoyage('nom').';'.nettoyage('prenom').';'.nettoyage('pays')."\n");	
     
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Salut sabotage,

    Suite ton exemple, j'ai fait une fonction...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    function nettoyage($chaine) {
     
                        $var_fonction_nettoyage ="";
     
                            if (isset($_POST[$var_fonction_nettoyage])) {
     
                                    {
                                    $tb_tableau_nettoyage = array();
                                    $tb_tableau_nettoyage[0] = '/;/';
                                    $tb_tableau_nettoyage[1] = '/\r\n/';
     
                                    $tb_tableau_replacer = array();
                                    $tb_tableau_replacer[0] = '.,';
                                    $tb_tableau_replacer[1] = '--->';
     
                                            $var_fonction_nettoyage = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $_POST[$var_fonction_nettoyage]);
     
                                                $var_fonction_nettoyage = utf8_decode($var_fonction_nettoyage);
     
                                   }
     
                              return $var_fonction_nettoyage;
                                                                        }
     
                                                }
    fputs($ouvrir_FD, utf8_decode($var_date).';'.nettoyage($var_votre_nom).';'.nettoyage($var_nom_enfant).';'.nettoyage($var_adresse).';'.nettoyage($var_ville).';'.utf8_decode($var_province).';'.utf8_decode($var_code_postal).';'."\n");

    Mais je n’arrive pas… Dans les fichiers CSV; les colonnes (ceux que j’ai appliqué la fonction « nettoyage ») sont vides, sans valeur…
    Alors à votre avis, comment je peux alléger mon code? ? Je vais surtout faire cela pour apprendre pas pour la vitesse.

    Merci

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Desolé il y avait un mic mac dans mon exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function nettoyage($chaine) {
                         $var_fonction_nettoyage ="";
                         if (isset($_POST[$chaine])) {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Salut sabotage,

    Merci pour ton aide mais avec ton code (suivant) les colonnes (dans le fichiers CSV; ) sont vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    			function nettoyage($chaine) {
                         $var_fonction_nettoyage ="";
                         if (isset($_POST[$chaine])) {
    				// déclaration des tableaux pour les remplacements
     
    				 $tb_tableau_nettoyage = array($tb_tableau_nettoyage => '/;/', $tb_tableau_nettoyage => '/\r\n/');
     
    				 $tb_tableau_replacer = array($tb_tableau_replacer => '.,',$tb_tableau_replacer => '--->');
     
     
    				 // nettoyage de la chaine
    				 $var_fonction_nettoyage = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $_POST[$var_fonction_nettoyage]);
     
    				  // renvoi de la chaine "nettoyée"
     
     
    				 return $var_fonction_nettoyage; 
    												 }
     
    										}		
     
     
    fputs($ouvrir_FD, utf8_decode($var_date).';'.nettoyage($var_votre_nom).';'.nettoyage($var_nom_enfant).';'.nettoyage($var_adresse).';'.nettoyage($var_ville).';'.utf8_decode($var_province).';'.utf8_decode($var_code_postal).';'."\n");
    Par contre j'ai la solution (suivante) qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    			function nettoyage($chaine) {
     
    					$var_fonction_nettoyage =$chaine;
     
     
    								{
     
     
    					  $tb_tableau_nettoyage = array('/;/','/\r\n/');
      					  $tb_tableau_replacer = array('.,','--->');
     
     
     
     
    					  return utf8_decode(preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $chaine));
     
     
     
    							   }
     
     
     
     
    											}		
     
     
     
    fputs($ouvrir_FD, utf8_decode($var_date).';'.nettoyage($var_votre_nom).';'.nettoyage($var_nom_enfant).';'.nettoyage($var_adresse).';'.nettoyage($var_ville).';'.utf8_decode($var_province).';'.utf8_decode($var_code_postal).';'."\n");
    merci encore et bonne fin de semaine

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ton code ne fait plus la meme chose.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    316
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 316
    Points : 155
    Points
    155
    Par défaut
    Salut Sabotage,

    'est la meilleur solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <? php
     
    					//remplace  lorsqu'il y a un saut [;]	(rn)
    					function replace_rn_saut($el)
    					{
    						//str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace. 
    					return (str_replace("\r\n",' ',$el));
    					}
     
    					$tab_excel = array();
     
    					$tab_excel[] = $var_date;
    					$tab_excel[] = $var_votre_nom;
    					$tab_excel[] = $var_nom_enfant;
    					$tab_excel[] = $var_adresse;
    					$tab_excel[] = $var_ville;
    					$tab_excel[] = $var_province;
    					$tab_excel[] = $var_code_postal;
     
     
    					 //utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1
    					$tab_excel = array_map('utf8_decode',$tab_excel);
    					//apliquer la fonction replace_rn_saut
    					$tab_excel = array_map('replace_rn_saut',$tab_excel);
     
     
     
     
     
     
    					//Ecriture le fichier
    					fputcsv($ouvrir_FD, $tab_excel, ';');
     
    					//Enfin fermer le fichier
                   		fclose($ouvrir_FD);
     
    ?>
    merci encore et bonne journée


    Citation Envoyé par sabotage Voir le message
    Ton code ne fait plus la meme chose.
    et maintenant ? en tout cas, ça marche comme j'ai voulu...

    Merci

Discussions similaires

  1. optimiser le code d'une fonction
    Par yanis97 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 15/07/2005, 09h41
  2. Optimiser mon code ASP/HTML
    Par ahage4x4 dans le forum ASP
    Réponses: 7
    Dernier message: 30/05/2005, 11h29
  3. optimiser le code
    Par bibi2607 dans le forum ASP
    Réponses: 3
    Dernier message: 03/02/2005, 15h30
  4. syntaxe et optimisation de codes
    Par elitol dans le forum Langage SQL
    Réponses: 18
    Dernier message: 12/08/2004, 12h54
  5. optimisation du code et var globales
    Par tigrou2405 dans le forum ASP
    Réponses: 2
    Dernier message: 23/01/2004, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo