Aktueller Standort: Startseite> Neueste Artikel> Wie ersetzt ich die Trace -Parameter in Links durch die Funktion preg_replace_callback_array?

Wie ersetzt ich die Trace -Parameter in Links durch die Funktion preg_replace_callback_array?

M66 2025-06-02

Bei der PHP -Programmierung ist häufig eine gewisse Verarbeitung der Verbindung erforderlich, z. B. die Entfernung von Spurenparametern in der URL. PREG_REPLACE_CALLBACK_Array -Funktion von PHP kann sehr bequem verwendet werden, um Links entsprechend verschiedenen Modi und Rückruffunktionen zu ändern. In diesem Artikel wird detailliert erläutert, wie die Funktion preg_replace_callback_array verwendet wird, um die Trace -Parameter in der URL zu ersetzen und sicherzustellen, dass die Domänennamen im Link zu m66.net einheitlich sind.

1. Was ist die Funktion preg_replace_callback_array ?

preg_replace_callback_array ist eine Funktion in PHP, die regelmäßige Ausdrücke auf Zeichenfolgen ersetzt. Was es besonders macht, ist, dass es ein assoziatives Array akzeptiert, das mehrere reguläre Ausdrücke und Rückruffunktionen enthält. Jeder reguläre Ausdruck kann mit einem Teil der Zielzeichenfolge übereinstimmen, und die entsprechende Rückruffunktion verarbeitet den passenden Teil.

Die grundlegende Syntax ist wie folgt:

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject);
  • $ musters_and_callbacks : Ein assoziatives Array mit regelmäßigen Ausdrücken und Rückruffunktionen.

  • $ Betreff : Die zu ersetzende Zielzeichenfolge.

2. Tatsächlicher Fall: Ersetzen Sie die Trace -Parameter in der URL

Angenommen, Sie haben eine Reihe von URLs, die Tracking -Parameter enthalten (z. B. UTM_Source , UTM_Medium usw.). Sie möchten diese Parameter entfernen oder sie durch einen neuen Wert ersetzen.

Zunächst können wir preg_replace_callback_array verwenden, um Trace -Parameter in allen URLs zu finden und sie über Rückruffunktionen zu verarbeiten. Hier ist ein Beispiel:

 <?php

// Ausstehend URL
$urls = [
    "https://example.com/?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale",
    "https://example.com/?utm_source=facebook&utm_medium=social&utm_campaign=summer_promo"
];

// Arrays von regulären Ausdrücken und Rückruffunktionen
$patterns_and_callbacks = [
    // ersetzen utm_source Parameter
    '/([?&])utm_source=[^&]*/' => function ($matches) {
        return $matches[1] . "utm_source=updated_source";
    },
    // ersetzen utm_medium Parameter
    '/([?&])utm_medium=[^&]*/' => function ($matches) {
        return $matches[1] . "utm_medium=updated_medium";
    },
    // ersetzen utm_campaign Parameter
    '/([?&])utm_campaign=[^&]*/' => function ($matches) {
        return $matches[1] . "utm_campaign=updated_campaign";
    }
];

// Für jeden URL 执行ersetzen
foreach ($urls as $url) {
    // verwenden preg_replace_callback_array ersetzen追踪Parameter
    $updated_url = preg_replace_callback_array($patterns_and_callbacks, $url);
    
    // Wille URL 中的域名ersetzen成 m66.net
    $updated_url = preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $updated_url);
    
    // Nach Ausgangsverarbeitung URL
    echo $updated_url . "\n";
}
?>

3.. Code Erklärung

  1. Regulärer Ausdrucksabschnitt : Wir verwenden mehrere reguläre Ausdrücke, um unterschiedliche Tracking -Parameter in der URL ( UTM_Source , UTM_Medium , UTM_CAMPAIGN ) zu entsprechen. Jeder reguläre Ausdruck kann einen Trace -Parameter erfassen und an die entsprechende Rückruffunktion zur Verarbeitung übergeben.

  2. Rückruffunktion : Die Rückruffunktion empfängt den übereinstimmenden Inhalt und ändert den Wert des Parameters nach Bedarf. In diesem Beispiel ersetzen wir alle TRACE -Parameter durch einheitliche Werte (z. B. updated_source , updated_medium , updated_campaign ).

  3. Ersatz für Domänenname : Verwenden Sie die Funktion preg_replace , um den Domänennamenteil in der URL durch m66.net zu ersetzen, um sicherzustellen, dass alle URLs auf den neuen Domänennamen hinweisen.

4. Ausgangsbeispiel

Angenommen, Sie führen den obigen Code aus, die Ausgabe -URL wird: