Vous n'êtes pas identifié(e).

  • Contributions :
  • Vos boîtes de messages privés sont vides.

#1 2015-12-28 17:58:34

Mention Julien G
Captain
Lieu : Lyon
Inscription : 2015-06-26
Messages : 519

Développement PHP
Sécurité
Automatisation Web
Social Engineering
Site Web

Automatisme et algorithme

Bonjour tout le monde,

Aujourd'hui je viens simplement vous présenter ma manière de coder et comment je fais pour gagner du temps.
Cet exemple est valable pour coder mais sûrement pour d'autres taches de votre quotidien informatique.

Lorsque j'ai besoin d'écrire des lignes de codes qui se répètent je prend le temps de faire un mini script qui va me générer les lignes de codes plutôt que de les taper à la main, pour exemple je ne rédige plus mes requêtes SQL basiques à la main mais je les génère automatiquement en collant la liste de mes colonnes et un petit tools me sort toutes les requêtes que j'utilise le plus souvent.

Pour autre exemple, je viens de faire un formulaire où j'avais besoin d'insérer un input de type <select> contenant toutes les heures de la journée, pour ça nous avons besoin de 24 lignes de code en HTML et  1 seule ligne de code en PHP qui va nous générer les options que l'on aura juste à copier/coller et c'est encore plus intéressant en sachant que je pourrai ré-utiliser le script.

Voilà le petit code pour les curieux :


<?php

 for($i=0;$i<24;$i++) echo htmlentities(str_replace('{i}',$i,'<option value="{i}">{i}:00</option>')).'<br>';

 

Et voilà le résultat en sortie :
1451325360-capture-du-2015-12-28-18-53-36.png

Si vous aussi vous avez des petits tricks n'hésitez pas smile
Julien,


----------------------------------------------------------------

Skype : t3n0k_UG - Automatisation SEO et Hacking

Hors ligne

#2 2015-12-29 07:23:55

Mention jeromeweb
Soldier
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 080

PHP
Automatisation Web

Re : Automatisme et algorithme

Bonne idée ce thread!
Si je peux me permettre, htmlentities ne sert à rien à priori et au niveau de la logique faire du remplacement pour de l'affichage c'est se compliquer les choses ^^
entre des <option> on ne met pas de <br />, je suppose que tu voulais faire un retour chariot pluôt
Tu peux simplifier comme ça :

for($i=0;$i<24;$i++){echo "<option value=\"$i\">$i:00</option>\n";}

Qqes fonctions que j'ai sous la main là qui pourront peut etre te servir  :


/**
 * @desc Transforme une date de type JJ[separateur]MM[separateur]AAAA en AAAA[separateur]MM[separateur]JJ
 *
 * @param string $sSeparateurDateOrigine caractere separateur de la date en entrée (pas obligatoire)
 * @param string $sSeparateurDateFinale caractere separateur de la date retournée (pas obligatoire)
 *
 * @return mixed false|string date reformattée
 */
function TransfoDate($sDate='', $sSeparateurDateOrigine = '', $sSeparateurDateFinale='')
{
    if(empty($sDate))
    {
        return false;
    }
    $aDate  = explode($sSeparateurDateOrigine, $sDate);
   
    return $aDate[2].$sSeparateurDateFinale.$aDate[1].$sSeparateurDateFinale.$aDate[0];
}

/**
 * @desc Transforme les lettres accentuees en lettre non accentuees
 *
 * @param string $string chaines a traiter
 *
 * @return mixed false|string chaine traitee
 */
function SuppAccents($string='')
{
     if(empty($string))
    {
        return false;
    }  
   
    $string = strtr($string,
            'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÃÂÃÄÇÈÉÊËÌÃÃŽÃÑÒÓÔÕÖÙÚÛÜÃ',
            'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
   
    return $string;
}


/**
 * @desc Supprime l'uri pour ne garder que le domaine / ss domaine racine
 
 * @param string $sURl URL
 *
 * @return mix false|string retourne false si erreur ou l'url modifiee
 */
function DelURI($sURl='')
{
    if(empty($sURl))
    {
        return false;
    }
    if(strpos($sURl, '/')!=false)
    {
        return strstr($sURl, '/', true);
    }
    else
    {
        return $sURl;
    }
}

/**
 * @desc si la chaine commence par http ou https, elle la transforme en lien HTML
 *
 * @param string        $sURl prefixe   prefiwe les URL si renseigné (pour ne pas faire de liens directs)
 * @param string        $sURl URL
 *
 * @return boo|string   url modifiee
 */
function UrlAuto($sPrefixe='', $sURl='')
{
    if(empty($sURl))
    {
        return false;
    }
    if (preg_match("#^https#i", $sURl))
    {
        $sBuffer= str_replace('https://', '<a href="'.$sPrefixe.''.$sURl.'">https://', $sURl);
        $sBuffer.='</a>';
    }
    elseif (preg_match("#^http#i", $sURl))
    {
        $sBuffer= str_replace('http://', '<a href="'.$sPrefixe.''.$sURl.'">http://', $sURl);
        $sBuffer.='</a>';
    }
    else
    {
        $sBuffer = $sURl;
    }
   
    return $sBuffer;
}
 


Blog perso jeromeweb.net - site pro : jerome-pasquelin.fr

Hors ligne

#3 2015-12-29 07:31:46

Mention Mitsu
Soldier
Inscription : 2014-11-17
Messages : 1 886

Développement PHP
Développement JS
Audit et Analyse
Netlinking
Site Web

Re : Automatisme et algorithme

Yep bonne idée,
Toujours dans le même esprit pour ceux qui ne connaissent pas Emmet est super pratique : http://emmet.io/ dispo sur les principaux éditeurs.


Mitsu, un Expert SEO qui se fait une joie de partager ses délires sur internet...

En ligne

#4 2015-12-29 09:02:20

Mention mbouchaud
Scout
Lieu : La Baule
Inscription : 2014-06-29
Messages : 178
Site Web

Re : Automatisme et algorithme

jeromeweb a écrit :

Tu peux simplifier comme ça :

for($i=0;$i<24;$i++){echo "<option value=\"$i\">$i:00</option>\n";}

Bonjour,

Merci pour le partage des fonctions

J'ai testé la fonction simplifiée en local et sur un serveur et j'obtiens le résultat suivant :


0:00
...
...
23:00
 

Après pour du jetable, Excel c'est bien aussi  ;-)
Capture.jpg

Dernière modification par mbouchaud (2015-12-29 09:02:54)

Hors ligne

#5 2015-12-29 09:50:42

Mention jeromeweb
Soldier
Lieu : pas loin de paris
Inscription : 2014-10-12
Messages : 1 080

PHP
Automatisation Web

Re : Automatisme et algorithme

mbouchaud a écrit :

J'ai testé la fonction simplifiée en local et sur un serveur et j'obtiens le résultat suivant :

C'est normal car c'est juste la partie dynamique qui est gerée là
il faut que tu entoures ça de balises <select> & </select> pour avoir une liste déroulante (c'est du HTML)


Blog perso jeromeweb.net - site pro : jerome-pasquelin.fr

Hors ligne

#6 2015-12-29 16:39:20

Mention Julien G
Captain
Lieu : Lyon
Inscription : 2015-06-26
Messages : 519

Développement PHP
Sécurité
Automatisation Web
Social Engineering
Site Web

Re : Automatisme et algorithme

Hello,

Tu as en effet raison sur le principe qu remplacer et une perte de temps.
Mon but n'est pas de générer le code à chaque fois en PHP mais bien de générer quelque chose que je peux copier d'ou le htmlentities pour ne pas interpréter le code smile

Merci pour ton code et merci Mitsu pour le site je vais jeter un oeil !

@mbouchaud : tu obtiens ça car il manque le htmlentities justement et pas mal je connaissais pas cette fonction sous excel !

Julien,


----------------------------------------------------------------

Skype : t3n0k_UG - Automatisation SEO et Hacking

Hors ligne

#7 2015-12-30 12:14:08

Mention effi10
Scout
Lieu : Troyes
Inscription : 2013-09-10
Messages : 250

Scraping
Développement C#
Content Spinning
Rédaction
Site Web

Re : Automatisme et algorithme

Moi j'utilise d'autres techniques quand je dois générer du code (parfois même du PHP ou du SQL) : un dév. perso en VB.Net (nb : possible avec effiSpin ;-) si vous réfléchissez bien)

La technique :
- définir un préfixe et un suffixe de code
- définir le schéma de code à répéter, et mapper sur ma base de données en intégrant les champs là où ils doivent être

==> je peux générer par exemple le code PHP pour insérer x catégories hiérarchiques dans un blog Wordpress cool ou bien comme ça m'est arrivé dans le passé, un script batch pour des opérations de maintenance sur des serveurs...


effiSpin, c'est moi ;-)

Hors ligne

#8 2015-12-31 08:46:44

Mention NicolasWeb
Soldier
Lieu : Besançon (France)
Inscription : 2015-09-30
Messages : 458

Rédaction
Sémantique
Python
Site Web

Re : Automatisme et algorithme

Pour générer du code à partir d'une liste, la plupart des bons éditeurs de texte/code peuvent enregistrer des macros ce qui simplifie vraiment la vie lorsqu'on sait bien utiliser son éditeur.
On commence par créer une macro et après on a plus qu'à exécuter la macro sur chaque élément de la liste.

Exemple :

element1
element2
element3
etc

Enregistrer une macro qui fait cela :

<b><a href="element1">element1</a></b>
element2
element3
etc

Ensuite, on a plus qu'à exécuter la macro sur toutes les lignes du fichier.

Vu que beaucoup de personnes utilisent Notepad++, voici l'explication pour ce logiciel : http://nliautaud.fr/wiki/articles/notepadpp/macros

Perso j'utilise vim et c'est la commande "Q". Référez-vous à la documentation de votre éditeur de code pour en savoir plus...
Au bout d'un moment on commence à avoir une "bibliothèque" de macro pour tout et n'importe quoi et cela accélère grandement le travail smile


Mes tools SEO gratuits →SeoSoftwareNow.com  ∙ Me contacter

Hors ligne

Pied de page des forums