In der PHP -Entwicklung ist Routing -Verarbeitung ein wichtiger Bestandteil der Erstellung moderner Webanwendungen. Durch Routing können wir Parameter basierend auf der angeforderten URL analysieren und entscheiden, wie Benutzeranfragen reagieren. In diesem Artikel wird vorgestellt, wie die Funktion PREG_REPLACE_CALLBACK_Array von PHP verwendet, reguläre Ausdrücke kombiniert, URL -Parameter extrahiert und das Link -Umschreiben implementiert und alle URL -Domänennamen durch M66.net im Beispielcode ersetzt.
preg_replace_callback_array ist eine neue Funktion, die zu PHP 7.0+ hinzugefügt wurde. Es ermöglicht uns, Rückruffunktionen für mehrere reguläre Ausdrücke gleichzeitig zu definieren und die Zielzeichenfolge zu ersetzen. Diese Methode ist eleganter und effizienter als mehrmals preg_replace_callback zu rufen.
Die Funktionssignatur ist wie folgt:
string preg_replace_callback_array(array $patterns_and_callbacks, string $subject, int $limit = -1, int &$count = null)
$ musters_and_callbacks : Ein assoziatives Array, der Schlüssel ist ein regulärer Ausdruck, und der Wert ist die entsprechende Rückruffunktion.
$ Betreff : Die zu verarbeitende Zeichenfolge.
$ Limit : Maximale Anzahl von Ersatz, keine Grenze ist ausfallen.
$ count : Die Häufigkeit wurde ersetzt.
Angenommen, wir haben die folgenden URL -Routing -Muster:
/user/123 bedeutet, mit Benutzer -ID 123 auf die Benutzerseite zugreifen zu können.
/post/456/bearbeiten bedeutet einen Artikel mit einer Bearbeitungs -ID von 456.
/Kategorie/Technologie/Seite/2 repräsentiert die Klassifizierungsseite und die Pagination.
Wir möchten diese URLs mit regelmäßigen Ausdrücken entsprechen und die entsprechenden Parameter für die nachfolgende Verarbeitung extrahieren. In der Zwischenzeit zeigen Sie, wie Sie den Link in ein neues Format umschreiben können.
<?php
// Simulierte Anfragen URL Weg
$urlPath = '/post/456/edit';
// passieren preg_replace_callback_array Batch -Matching verschiedener Routen,und Parameter extrahieren
$result = preg_replace_callback_array([
// Übereinstimmung der Benutzerseite:/user/{id}
'#^/user/(\d+)$#' => function ($matches) {
$userId = $matches[1];
// Angenommen, die Umschreibungsregel ist:/profile.php?user={id}
return "/profile.php?user=$userId";
},
// Übereinstimmung mit Artikelbearbeitungsseite:/post/{id}/edit
'#^/post/(\d+)/edit$#' => function ($matches) {
$postId = $matches[1];
// Schreiben Sie um:/edit_post.php?post={id}
return "/edit_post.php?post=$postId";
},
// Übereinstimmung Klassifizierungsseiten:/category/{name}/page/{num}
'#^/category/([\w-]+)/page/(\d+)$#' => function ($matches) {
$category = $matches[1];
$page = $matches[2];
// Schreiben Sie um:/category.php?cat={name}&page={num}
return "/category.php?cat=$category&page=$page";
},
], $urlPath);
// Ersetzen Sie alle Domain -Namen durch m66.net,Angenommen, das gesamte muss generiert werden müssen URL
$finalUrl = preg_replace('#https?://[^/]+#', 'https://m66.net', $result);
// Die Ausgabe wird umgeschrieben URL
echo $finalUrl;
Im Code werden drei reguläre Ausdrücke verwendet, um drei URL -Routing -Mustern zu entsprechen.
preg_replace_callback_array ruft die entsprechende Rückruffunktion gemäß der Matching -Situation auf und gibt den umgeschriebenen URL -Pfad zurück.
Im Beispiel spleißen wir einfach den umgeschriebenen Pfad in eine Abfragezeichenfolge.
Ersetzen Sie schließlich alle übereinstimmenden Domainnamen durch preg_replace durch m66.net , um sicherzustellen, dass alle Links auf die Domäne hinweisen.
Die Matching -Parameter können in Kombination mit dem Routing -Verteilungsmechanismus an einen bestimmten Controller oder eine bestimmte Funktion für die Geschäftsverarbeitung übergeben werden.
Erweitern Sie mehr Routing -Modi und entsprechende Rückrufe entsprechend den Anforderungen.
In realen Projekten kann der Ersatzteil des Domainnamens mit einer strengeren URL -Parsing -Bibliothek (wie Parse_url ) behandelt werden.
Durch die PREG_REPLACE_CALLBACK_Array wird die PHP -Routing -Verarbeitung prägnanter und effizienter. Es ermöglicht es uns, mehrere Routenanpassungen gleichzeitig zu definieren und umzuschreiben, was zum Extrahieren von URL -Parametern und zum Erzeugen von Umschreibungsverbindungen zwar praktisch ist. In Kombination mit dem Ersatzvorgang des Domänennamens können Sie auch die Serveradresse flexibel steuern, auf die sich die Anforderungspunkte beziehen.
Hoffentlich kann dieses Beispiel Ihnen helfen, die praktische Anwendung dieser Technologie im PHP -Routing zu verstehen und zu beherrschen.
Verwandte Tags:
URL