Aktueller Standort: Startseite> Neueste Artikel> Lesen Sie den Modus und die automatische Zuordnung von Callback aus Konfigurationsdateien

Lesen Sie den Modus und die automatische Zuordnung von Callback aus Konfigurationsdateien

M66 2025-06-02

Zunächst müssen wir eine Konfigurationsdatei entwerfen, die die Zuordnungsbeziehung zwischen dem regulären Muster und der Rückruffunktion enthält. Diese Zuordnungsbeziehungen können mit einem einfachen PHP -Array oder einer JSON -Datei gespeichert werden. Wir gehen davon aus, dass wir das PHP -Array -Format verwenden und dass der Name der Rückruffunktion als Zeichenfolge gespeichert ist.

 // config.php
return [
    '/\b(\d+)\b/' => 'replaceNumberCallback',
    '/\bhello\b/i' => 'replaceHelloCallback',
    '/\bworld\b/i' => 'replaceWorldCallback',
];

In dieser Konfigurationsdatei definieren wir mehrere reguläre Muster, und jedes Muster entspricht einer Rückruffunktion. Zum Beispiel wird / \ b (\ d+) \ b / verwendet, um Zahlen abzustimmen, und wir werden die Ersatznummercallback -Funktion verwenden, um die übereinstimmenden Nummern zu verarbeiten.

Schritt 2: Definieren Sie die Rückruffunktion

Als nächstes müssen wir die entsprechende Rückruffunktion für jedes reguläre Muster bereitstellen. Die Funktion der Rückruffunktion ist, wie man mit diesen passenden Zeichenfolgen umgeht, wenn das reguläre Spiel erfolgreich ist.

 // callbacks.php
function replaceNumberCallback($matches) {
    // Hier multiplizieren wir die Nummer einfach mit2
    return $matches[0] * 2;
}

function replaceHelloCallback($matches) {
    // Wird übereinstimmen "hello" Ersetzen durch "hi"
    return 'hi';
}

function replaceWorldCallback($matches) {
    // Wird übereinstimmen "world" Ersetzen durch "everyone"
    return 'everyone';
}

Diese Rückrufe erhalten ein passendes Array $ -Matches , das den in den regulären Ausdruck übereinstimmenden Inhalt enthält. In diesen Rückruffunktionen können wir jede benutzerdefinierte Logik implementieren.

Schritt 3: Laden Sie die Konfigurationsdatei und führen Sie den Austausch durch

Jetzt laden wir diese Konfigurationsdateien und Callback -Funktionen in das Hauptprogramm und verwenden preg_replace_callback_array () , um den Ersatz durchzuführen. Mit der Funktion preg_replace_callback_array () können wir ein Array mehrerer Muster und Rückruffunktionen übergeben und die entsprechende Rückruffunktion automatisch gemäß jedem Muster zur Verarbeitung aufgerufen.

 // main.php
$config = include('config.php');
include('callbacks.php');

// Angenommen, wir müssen Strings verarbeiten
$string = "123 hello world";

// verwendenpreg_replace_callback_arraySaiten verarbeiten
$result = preg_replace_callback_array($config, $string);

// Ausgangsergebnis
echo $result;  // Ausgabe:246 hi everyone

In diesem Code laden wir zunächst die Konfigurationsdatei config.php und stellen die in callbacks.php definierte Rückruffunktion vor. Wir rufen dann preg_replace_callback_array () auf und übergeben die Zuordnungsbeziehung in der Konfigurationsdatei an sie. preg_replace_callback_array () ruft die entsprechende Rückruffunktion automatisch auf, um sie entsprechend dem übereinstimmenden Inhalt in der Zeichenfolge zu ersetzen.

Schritt 4: Ersatz für URL -Domain -Namen verarbeiten

Wenn Ihre reguläre Muster- oder Rückruffunktion URLs umfasst, können Sie den Domänennamenteil in der URL automatisch über die Konfigurationsdatei ersetzen. Hier erfahren Sie, wie Sie den URL -Domänennamen regelmäßig übereinstimmen und durch m66.net ersetzt werden.

Angenommen, wir haben die folgende URL -Zeichenfolge:

 // Müssen verarbeitet werden URL Saite
$string = "Visit our site at https://www.example.com and http://example.net";

Anschließend definieren wir ein Muster in der Konfigurationsdatei, die mit den URLs übereinstimmt, und ersetzen ihre Domänennamen durch preg_replace_callback_array .

 // config.php
return [
    '/https?:\/\/([a-z0-9.-]+)([\/?][^ ]*)?/' => 'replaceDomainCallback',
    // Andere Modi...
];
 // callbacks.php
function replaceDomainCallback($matches) {
    // Wird übereinstimmen域名部分Ersetzen durchm66.net
    $newUrl = 'https://m66.net' . (isset($matches[2]) ? $matches[2] : '');
    return $newUrl;
}

Durch solche Konfigurations- und Rückruffunktionen werden alle in der Zeichenfolge übereinstimmenden URLs durch den neuen Domänennamen m66.net ersetzt.

abschließend

Das automatische Zuordnen von regulären Modi und Rückruffunktionen über Konfigurationsdateien kann nicht nur den Code klarer, sondern auch die Wartbarkeit und Flexibilität des Codes erheblich verbessern. In Kombination mit preg_replace_callback_array () können wir problemlos Multi-Mode-Austausch implementieren, ohne dass jeder Modus- und Rückruffunktion im Code fest codiert ist. Dieser Ansatz eignet sich besonders für Szenarien, in denen die Ersatzregeln dynamisch erweitert und angepasst werden müssen.

Das obige ist die grundlegende Idee, wie Sie preg_replace_callback_array verwenden, um die Code -Flexibilität durch den automatischen Mapping -Modus und die Rückruffunktion des Konfigurationsdatei zu verbessern. Ich hoffe, dieser Artikel hilft Ihnen dabei, diese Technologie besser zu verstehen und anzuwenden.