Ich schreibe ein Skript, um einen XML-Feed in HTML zu konvertieren. Ein Teil der Routine beinhaltet die Umwandlung von Rohzustandsnamen in Verbindungen mit preg_replace. Es funktioniert meistens gut, aber ich habe Probleme mit "Virginia" und "West Virginia".preg_replace für "Virginia" und "West Virginia"
<?php
$state_patterns = array(
'/\balabama\b/i',
'/\balaska\b/i',
'/\barizona\b/i',
'.....etc.....',
'/\bvirginia\b/i',
'/west virginia/i'
);
$state_replacements = array(
'<a href="/path/to/alabama">Alabama</a>',
'<a href="/path/to/alaska">Alaska</a>',
'<a href="/path/to/arizona">Arizona</a>',
'.....etc.....',
'<a href="/path/to/virginia">Virginia</a>',
'<a href="/path/to/west-virginia">West Virginia</a>'
);
$statelinks = preg_replace($state_patterns, $state_replacements, $xml_src);
Natürlich ist das Problem mit diesem "Virginia" bricht "West Virginia". Der gleiche Bruch würde für Dinge wie "Mexiko" und "New Mexico" auftreten.
Welche Preg_replace-Muster könnte ich verwenden, um diesen Konflikt zu überwinden?
Ich habe versucht, zuerst "West Virginia" und dann "Virginia" zu laufen. Aber das bricht auch - nur etwas anders.
Das scheint perfekt für meine Situation zu arbeiten. Tief danke Mann. –