expressions regulieres 194p
regular expressions 97p
regex
RewriteRule ^([^.]+)_([^.]+).html$ /rewrite.php?p1=$1&p2=$2 [R=301]
R=301, redirection 301
.htaccess = fichier de configuration apache propre au répertoire, héritées dans l'arborescence
google voit les url, et non le code source, les fichiers htaccess sont inaccessibles !
Offline
Un Mémo sur le Mod Rewrite d'Apache >> w3-campus.com/IMG/ppt/Mod_Rewrite.ppt
Fonction Header de Php, à utiliser avec l'astuce de ob_start(); qui met en tampon l'output de la page, cad que n'importe quel header puisse être balancé à n'importe quel endroit dans le code >>http://www.php.net/header
Référencer un Site avec un menu à droite >>
##header
| Contenu de la page | |
| Menu De Gauche |
Offline
L'Absolute Mod Rewrite :
RewriteRule ^([^.]+).html$ /_Rewrite.php?error=RewriteBasic
ErrorDocument 404 /_Rewrite.php?error=404via
ErrorDocument 300 /_Rewrite.php?error=300
ErrorDocument 403 /_Rewrite.php?error=403
#Pour les cas Extrêmes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /_Rewrite.php?error=404Xtreme
#Au cas ou les erreurs 404 ne passent pas à travers la première méthode, permet de rewriter tous fichier nom existant sur le serveur, ce qui est confortable pour placer ses redirections
Toutes les pages .html n'existent pas, sauf présence du fichier sur le serveur héhé :]
Désavantage, il est alors impossible d'utiliser des répertoires virtuels du même non que les fichiers sur la racine
ex : flash/ ne pourra exister si flash.php existe sur la racine
Offline
Eléments du Pattern (Certains raccourcis ne fonctionnent pas en PHP !)
Code Description
Marque le caractère suivant comme caractère spécial ou littéral.
Par exemple, 'n' correspond au caractère 'n'. ' ' correspond à un caractère de nouvelle ligne. La séquence '\' correspond à '', tandis que '(' correspond à '('.
^ Correspond au début de la saisie.
$ Correspond à la fin de la saisie.
* Correspond au caractère précédent zéro fois ou plusieurs fois.
Ainsi, 'zo*' correspond à 'z' ou à 'zoo'.
+ Correspond au caractère précédent une ou plusieurs fois.
Ainsi, 'zo+' correspond à 'zoo', mais pas à 'z'.
? Correspond au caractère précédent zéro ou une fois.
Par exemple, 'a?ve?' correspond à 've' dans 'lever'.
. Correspond à tout caractère unique, sauf le caractère de nouvelle ligne.
(modèle) Correspond au modèle et mémorise la correspondance. La sous-chaîne correspondante peut être extraite de la collection obtenue, à l'aide d'Item [0]...[n]. Pour trouver des correspondances avec des caractères entre parenthèses ( ), utilisez '(' ou ')'.
x|y Correspond soit à x soit à y.
Par exemple, 'z|foot' correspond à 'z' ou à 'foot'. '(z|f)oot' correspond à 'zoo' ou à 'foot'.
{n} n est un nombre entier non négatif. Correspond exactement à n fois le caractère.
Par exemple, 'o{2}' ne correspond pas à 'o' dans 'Bob,' mais aux deux premiers 'o' dans 'fooooot'.
{n,} n est un entier non négatif. Correspond à au moins n fois le caractère.
Par exemple, 'o{2,}' ne correspond pas à 'o' dans 'Bob', mais à tous les 'o' dans 'fooooot'. 'o{1,}' équivaut à 'o+' et 'o{0,}' équivaut à 'o*'.
{n,m} m et n sont des entiers non négatifs. Correspond à au moins n et à au plus m fois le caractère.
Par exemple, 'o{1,3}' correspond aux trois premiers 'o' dans 'foooooot' et 'o{0,1}' équivaut à 'o?'.
[xyz] Jeu de caractères. Correspond à l'un des caractères indiqués.
Par exemple, '[abc]' correspond à 'a' dans 'plat'.
[^xyz] Jeu de caractères négatif. Correspond à tout caractère non indiqué.
Par exemple, '[^abc]' correspond à 'p' dans 'plat'.
[a-z] Série de caractères. Correspond à tout caractère dans la série spécifiée.
Par exemple, '[a-z]' correspond à tout caractère alphabétique minuscule compris entre 'a' et 'z'.
[^m-z] Série de caractères négative. Correspond à tout caractère ne se trouvant pas dans la série spécifiée.
Par exemple, '[^m-z]' correspond à tout caractère ne se trouvant pas entre 'm' et 'z'.
Correspond à une limite représentant un mot, autrement dit, à la position entre un mot et un espace.
Par exemple, 'er' correspond à 'er' dans 'lever', mais pas à 'er' dans 'verbe'.
B Correspond à une limite ne représentant pas un mot.
'en*tB' correspond à 'ent' dans 'bien entendu'.
d Correspond à un caractère représentant un chiffre. Équivaut à [0-9].
D Correspond à un caractère ne représentant pas un chiffre.
Équivaut à [^0-9].
f Correspond à un caractère de saut de page.
Correspond à un caractère de nouvelle ligne.
Correspond à un caractère de retour chariot.
s Correspond à tout espace blanc, y compris l'espace, la tabulation, le saut de page, etc. Équivaut à '[ f v]'.
S Correspond à tout caractère d'espace non blanc.
Équivaut à '[^ f v]'.
Correspond à un caractère de tabulation.
v Correspond à un caractère de tabulation verticale.
w Correspond à tout caractère représentant un mot et incluant un trait de soulignement. Équivaut à '[A-Za-z0-9_]'.
W Correspond à tout caractère ne représentant pas un mot.
Équivaut à '[^A-Za-z0-9_]'.
num Correspond à num, où numest un entier positif. Fait référence aux correspondances mémorisées.
Par exemple, '(.)1' correspond à deux caractères identiques consécutifs.
n Correspond à n, où n est une valeur d'échappement octale. Les valeurs d'échappement octales doivent comprendre 1, 2 ou 3 chiffres.
Par exemple, '11' et '�11' correspondent tous les deux à un caractère de tabulation. '�011' équivaut à '�01' & '1'. Les valeurs d'échappement octales ne doivent pas excéder 256. Si c'était le cas, seuls les deux premiers chiffres seraient pris en compte dans l'expression. Permet d'utiliser les codes ASCII dans des expressions régulières.
xn Correspond à n, où n est une valeur d'échappement hexadécimale. Les valeurs d'échappement hexadécimales doivent comprendre deux chiffres obligatoirement.
Par exemple, 'x41' correspond à 'A'. 'x041' équivaut à 'x04' & '1'. Permet d'utiliser les codes ASCII dans des expressions régulières.
Procédures et Fonctions
Execute : matches=object.Execute(string) Renvoie une collection Matches contenant un objet Match pour chaque correspondance trouvée dans l'élément string. La valeur trouvée est dans Match.value et sa position dans Match.FirstIndex
Test : boolean=object.Test(string) Lance une recherche d'expression régulière dans une chaîne spécifiée et renvoie une valeur booléenne qui indique si une correspondance selon les critères spécifiés a été trouvée
Replace : string=object.Replace(string1, string2) Remplace par string2 le texte trouvé dans une recherche d'expression régulière sur la chaîne string1
Ereg : boolean=ereg (pattern, string [, regs]) Recherche dans la chaîne string les séquences de caractères qui correspondent au masque pattern. Si l'argument regs est précisé, les résultats seront enregistrés dans le tableau regs. $regs[1] contiendra la 1ère parenthèse capturante, $regs[2] contiendra la 2ème, etc... Utiliser Eregi pour une recherche insensible à la casse
Ereg_replace : string=ereg_replace (pattern, replace, string) Recherche dans la chaîne string les occurrences de pattern, puis les remplace par la chaîne replace et retourne la chaîne modifiée. Si pattern contient des parenthèses capturantes, replace pourra contenir des séquences de la forme \digit, qui seront remplacées par le texte capturé par la n-ième parenthèse capturante. \0 correspond à la chaîne originale complète. De 0 à 9 parenthèses capturantes peuvent être utilisées. Les parenthèses peuvent être imbriquées, et leur numéro d'ordre est défini par leur parenthèse ouvrante. Utiliser Eregi_replace pour une recherche insensible à la casse
Quelques masques utiles Si vous voulez en proposer d'autres... n'hésitez pas !
(Enlevez ^ et $ pour chercher dans une chaîne plus grande)
^d+$ ou ^[0-9]+$ Nombre entier
^[_a-zA-Z0-9.+-]+$
^[^\/:*?'<>|]+$
^[^\/:*?'<>|]{1,8}.[a-zA-Z0-9]{3}$ Nom de fichier Merci JP !
Améliorations by funky_jah !
La même pour DOS
^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]{2,}[.][a-zA-Z]{2,4}$
^([a-zA-Z0-9]+(([.-\_]?[a-zA-Z0-9]+)+)?)@(([a-zA-Z0-9]+[.-\_])+[a-zA-Z]{2,4})$ Adresse email
^http://[w.%/?=:;+-]{5,}$
ou ^http://[A-Za-z0-9_.%/?=:;+-]{5,}$
^(http://)?[a-zA-Z0-9]+([./]?[a-zA-Z0-9_-]+)*$
^((.*?)://)?(([^:]*):([^@]*)@)?([^/:]*)(:([^/]*))?([^?#]*/?)?(?([^?#]*))?(#(.*))?$ URL
en PHP
by funky_jah !
by Goulh !
]*>(.| )*( )? Pour supprimer tous les scripts d'un source
Merci funky_jah !
Offline