Exemple de redirection pour forcer les www

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Exemple de redirection pour autoriser seulement deux adresse IP

RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.1$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.2$
RewriteRule .? - [S=1]
RewriteRule ^ http://public.site.com/ [F,L]

Exemple de script pour redimensionner une liste d'images

for l in `ls *.jpg`; do convert $l -size=100x100 $l; done

Exemple de script pour effacer les messages plus vieux qu'un an dans un compte imap

find ~/imap -type f -mtime +365 -wholename '*/cur/*' -exec rm {} \;

Exemple de script utilisé pour remplacer un nom dans un dossier (nom + contenu des fichiers)

#!/bin/bash

# On valide qu'il y ait trois arguments
if [ ! -n "$1" ] || [ ! -n "$2" ] || [ ! -n "$3" ]
then
      echo -e "Usage: `basename $0`\n\t Remplace  'argument 1' par 'argument 2' dans le dossier 'argument 3'"
            exit 101
fi

recursion(){
  # Ajout d'une majuscule sur la première lettre des termes à changer
  m1=`echo ${1:0:1} | tr a-z A-Z`${1:1}
  m2=`echo ${2:0:1} | tr a-z A-Z`${2:1}
  # Changement du terme en majuscule
  M1=`echo $1 | tr a-z A-Z`
  M2=`echo $2 | tr a-z A-Z`

  # S'il s'agit d'un dossier
  if [ -d $3 ]
     then
       # On crée le répetroire dans la copie
       mkdir `echo $2"/"$3 | sed -e "s%$1%$2%g" | sed -e "s%$m1%$m2%g"`

       # On boucle les fichiers de ce répertoire
         for l in `ls $3`
         do
           recursion $1 $2 $3"/"$l
         done
  # S'il s'agit d'un fichier
  else
    # On renomme le fichier et on change toutes les occurences du terme à remplacer
    # (autant minuscule, majuscule et 1re lettre majuscule)
    sed -e "s%$1%$2%g" $3 | sed -e "s%$m1%$m2%g" | sed -e "s%$M1%$M2%g" > `echo $2"/"$3 | sed -e "s%$1%$2%g" | sed -e "s%$m1%$m2%g"`
  fi
}

# Si le troisième paramètre existe (le fichier / dossier à renommer)
if [ -e $3 ]
then
  # Ajout d'une majuscule sur la première lettre des termes à changer
  m1=`echo ${1:0:1} | tr a-z A-Z`${1:1}
  m2=`echo ${2:0:1} | tr a-z A-Z`${2:1}

  # On crée un dossier de base pour la copie
    mkdir $2
  # On change le terme à changer dans le dossier racine
    mkdir `echo $2"/"$3 | sed -e "s%$1%$2%g" | sed -e "s%$m1%$m2%g"`

  # On lance la récursion sur le dossier à changer
  for l in `ls $3`
    do
        recursion $1 $2 $3"/"$l
     done

# Le troisième arguement n'est pas un dossier
else
    echo -e "Usage: `basename $0`\n\t Remplace  'argument 1' par 'argument 2' dans le dossier 'argument 3'"
    echo -e "\t 'argument 3' n'est pas un fichier..."
    exit 102
fi

Script utilisé pour ouvrir/fermer mon router sans-fil

var casper = require('casper').create();

casper.start('http://192.168.0.1/index.php', function(){

    // On se connecte à l'interface
    if(this.exists("input[name='LOGIN_USER']")){
        this.fill('form#frm', {
            'LOGIN_USER': '********'
            'LOGIN_PASSWD': '********'
        }, true);

        this.click('form#frm input[type="submit"]');
    }
});
// OOn ouvre la page de gestion du router sans-fil
casper.thenOpen('http://192.168.0.1/bsc_wlan.php');

casper.then(function(){

    if(
        // Test que l'on est sur la bonne page / que le bouton existe
        this.exists("input[name='enable']") &&
        (
            (
            // Si la commande est "ouvrir" et que le statut est à fermer
            casper.cli.args[0] == "ouvrir" &&
            this.getPageContent().indexOf('f.enable.checked = false') > 0
            )
        ||
            (
            // Si la commande est "fermer" et que le statut est ouvert
            casper.cli.args[0] == "fermer" &&
            this.getPageContent().indexOf('f.enable.checked = true') > 0
            )
        )
    ){
        // On change le statut
        this.click('#enable');
        this.click('input[name="apply"]');
    }

})

// On ferme la session par mesure de sécurité
casper.thenOpen('http://192.168.0.1/logout.php');

casper.run();
                    

PHP

Exemple de calcul d'âge en php

    $date = new DateTime("1979-04-29");
    $now = new DateTime;

    echo $now->diff($date)->y . ' ans';

Requête SQL via php

// Connexion à la base de données
try {
    $bdd = new PDO('mysql:host=localhost;dbname=####', '####', '####');
} catch(Exception $e) {
    exit('Impossible de se connecter à la base de données.');
}

// Requête à effectuer
$requete = "SELECT * FROM participants order by convert(prenom using latin1) collate latin1_swedish_ci";

// Exécution de la requête SQL
$resultat = $bdd->query($requete) or die(print_r($bdd->errorInfo()));

// On parcourt les résultats de la requête SQL
while($donnees = $resultat->fetch(PDO::FETCH_ASSOC)) {
    $suggestions['suggestions'][] = utf8_encode($donnees['title']);
}
// On renvoie le données au format JSON
echo json_encode($suggestions);
                

Trouver tous les attributs src d'une page

src="([^"]*)"

Trouver tous les attributs src d'une page qui utilise des images externes

src="(?=http)([^"]*)"

SQL

Requête avec tri personnalisé

SELECT nom, categorie FROM personnes ORDER BY
       Case categorie
          when 1 then 1
          when 0 then 2
          else 3
       end,nom

Trouver les doublons d'une table

SELECT COUNT(nom), nom FROM personnes GROUP BY nom HAVING COUNT(nom)>1

Obtenir une liste de personne dans un seul champ

SELECT GROUP_CONCAT(nom) As liste FROM personnes WHERE membre = '1'