Bei der Verwendung von PREG_REPLACE_CALLBACK_Array zum Umgang mit komplexem Textersatz müssen häufig übereinstimmende Übereinstimmungen in regulären Rückruffunktionen debuggen und feststellen, ob die Logik korrekt ist. PHP bietet zwei sehr praktische Debugging -Funktionen: var_dump () und print_r () . In diesem Artikel wird durch ein Beispiel demonstriert, wie man die reguläre Rückruflogik mit Hilfe dieser beiden Funktionen in preg_replace_callback_array debuggiert.
preg_replace_callback_array () ist eine Funktion, die von PHP 7.0 und höher bereitgestellt wird. Sie können ein assoziatives Array übergeben, das aus regulären Ausdrücken und Rückruffunktionen besteht. Es wird den passenden Text durchqueren und ihn gemäß den entsprechenden Rückruffunktionen ersetzen.
preg_replace_callback_array(array $patterns_and_callbacks, string $subject, int $limit = -1, int &$count = null): string
Im Vergleich zu Preg_Replace_Callback kann es mehrere reguläre Ausdrücke und mehrere Rückruffunktionen mit klarerer Logik und stärkerer Skalierbarkeit verarbeiten.
Nehmen wir an, wir haben einen Textstück, der Links im Markdown-Stil und benutzerdefinierte {{Code}} -Tags mischt, und wir möchten PREG_REPLACE_CALLBACK_Array verwenden, um sie einheitlich zu verarbeiten:
$text = 'Klicken [Hier](https://m66.net) Überprüfen Sie die Details,Oder verwenden {{print_name}} Variable。';
Wir definieren zwei Muster und geben ihre jeweiligen Rückruffunktionen an:
$patterns = [
// übereinstimmen markdown Link:[Text](URL)
'/\[(.*?)\]\((.*?)\)/' => function ($matches) {
echo "übereinstimmen到 markdown Link:\n";
print_r($matches);
return '<a href="' . htmlspecialchars($matches[2]) . '">' . htmlspecialchars($matches[1]) . '</a>';
},
// übereinstimmen {{Variable}} bilden
'/\{\{(.*?)\}\}/' => function ($matches) {
echo "übereinstimmen到Variable标签:\n";
var_dump($matches);
$variableName = $matches[1];
// 模拟Variable替换
$variables = [
'print_name' => 'Benutzername'
];
return isset($variables[$variableName]) ? $variables[$variableName] : '';
}
];
$result = preg_replace_callback_array($patterns, $text);
echo "\nEndgültiges Ersatzergebnis:\n" . $result;
übereinstimmen到 markdown Link:
Array
(
[0] => [Hier](https://m66.net)
[1] => Hier
[2] => https://m66.net
)
übereinstimmen到Variable标签:
array(2) {
[0]=>
string(17) "{{print_name}}"
[1]=>
string(10) "print_name"
}
Endgültiges Ersatzergebnis:
Klicken <a href="https://m66.net">Hier</a> Überprüfen Sie die Details,Oder verwenden Benutzername Variable。
Verwenden Sie print_r () , um Arrays mit klaren Strukturen auszugeben, die eher für das menschliche Lesen geeignet sind.
Die Verwendung von var_dump () zum Anzeigen von Datentypen und Längen ist besonders nützlich, wenn es um mehrere Datenstrukturen geht.
Um zu vermeiden, dass die Ausgabe von Webseiten in der Verschmutzung von Informationen debuggen, wird empfohlen, in der CLI- oder Protokolldatei zu debuggen.
Entfernen oder kommentieren Sie alle Debug -Anweisungen, bevor Sie online gehen, um sicherzustellen, dass die Ausgabe ordentlich ist.
PREG_REPLACE_CALLBACK_Array bietet leistungsstarke Multi-Mode-Funktionsfunktionen. In der Debugging -Stufe können wir in Kombination mit var_dump () und print_r () helfen, die passende Situation schnell zu verstehen und zu überprüfen, ob die Logik korrekt ist. Das Mastering dieser Debugging -Methode kann Ihre Effizienz bei der Behandlung komplexer Textverarbeitungsaufgaben erheblich verbessern.