Lecteur Markdown
REGEX_DOCUMENTATION
Regex — Regular Expression Tester #
Description #
Outil de test d'expressions régulières intégré à BeamReactor. Permet de tester des patterns PCRE avec match, groupes de capture et remplacement, directement depuis l'interface d'administration.
Fonctionnalités #
Test de patterns #
- Saisie du pattern avec délimiteurs PCRE (`/pattern/flags`)
- Texte de test multi-lignes (textarea, max 65535 caractères)
- Chaîne de remplacement optionnelle
- Exemple pré-rempli au premier chargement
Résultats #
- Nombre de correspondances (`preg_match_all`)
- Liste des valeurs matchées
- Détail des groupes de capture ($1, $2, ...)
- Résultat du remplacement si une chaîne de remplacement est fournie
- Messages d'erreur explicites pour les patterns invalides
Aide-mémoire #
Section de référence rapide affichée sous le formulaire avec les tokens PCRE courants (`.`, `\d`, `\w`, `\s`, `^`, `$`, `*`, `+`, `?`, `{n,m}`, `[abc]`, `(...)`, `|`, `\b`). Entièrement traduite.
Sécurité #
- Accès restreint à `REGEX_LEVEL_ADMIN` (admin uniquement)
- Le modificateur `/e` est explicitement interdit — il permettait l'exécution de code arbitraire via `preg_replace` (supprimé en PHP 7, mais le plugin bloque la tentative par précaution)
- Toutes les entrées sanitizées via `Parser::sanitize`
- Validation du pattern via `set_error_handler` avant exécution — les erreurs PCRE sont interceptées proprement
- Sortie HTML échappée via `htmlspecialchars`
- Pas d'utilisation de `get_magic_quotes_gpc()` (supprimé en PHP 8)
Pourquoi admin uniquement ? #
Un testeur regex est un outil de développement. Exposer `preg_replace` à des utilisateurs non privilégiés, même avec les protections en place, n'a pas de sens fonctionnel.
Structure #
/plugins/regex/
├── regex.php
├── /conf/
│ └── regex.conf.inc.php
├── /doc/
│ └── regex.md
├── /locale/
│ ├── regex.en.inc.php
│ ├── regex.fr.inc.php
│ └── regex.de.inc.php
└── /css/
└── regex.css
Traductions #
34 clés dans `$dialregex[]`. Disponible en EN, FR, DE. Inclut les labels du formulaire, les messages d'erreur, et les descriptions de l'aide-mémoire.
Note : l'ancien plugin utilisait `$dialregx[]` (sans 'e'). Renommé en `$dialregex[]` pour cohérence.
Différences avec la version 1.x #
| Aspect | v1 (2009) | v2 (2026) |
|--------|-----------|-----------|
| PHP | `get_magic_quotes_gpc()` | `Parser::sanitize` |
| Sécurité | Aucune validation du pattern | Rejet du `/e`, error handler, sanitization |
| Résultats | Texte brut, résultat seul | Matches, groupes de capture, remplacement |
| Formulaire | HTML inline concaténé | Formulaire structuré avec CSS |
| Aide | Aucune | Aide-mémoire PCRE traduit |
| Texte de test | Input text (ligne unique) | Textarea multi-lignes |
| Accès | `REGEX_LEVEL_USER` | `REGEX_LEVEL_ADMIN` |
| i18n | EN/FR , `$dialregx` | EN/FR/DE, `$dialregex` |
Changelog #
- 2.0.0 (2026-02-07) : Réécriture complète. Suppression de `get_magic_quotes_gpc`, sanitization via Parser, blocage du modificateur /e, affichage des groupes de capture, aide-mémoire PCRE, textarea multi-lignes, CSS séparé, i18n EN/FR/DE.
- 1.02.0 (2009-10-29) : Version originale.