2016-10-12 5 views
1

Ich habe die JSON-Ausgabe Kirchhellener Stra\u00dfe .. die \u00df ist ein UTF8-codierten deutschen Buchstaben ß ..Ich möchte die Ausgabe für das Wort Straße suchen und ersetzen, aber ich kann nicht herausfinden, wie?PHP - strpos() auf UTF8-codierten JSON?

$street = json_decode($bit->long_name); // here the `Kirchhellener Stra\u00dfe` is put into $street 

$check_strasse1 = strpos($street, 'Straße'); 
$check_strasse2 = strpos($street, 'Stra\u00dfe'); 

if($check_strasse1 !== false || $check_strasse2 !== false) {  
    echo "oki";    
    $street = str_replace('Strasse', 'Str.', $street); 
    $street = str_replace('Stra\u00dfe', 'Str.', $street); 
} else {  
    echo "nope";   
} 

Wie kann ich es erkennen, die $street hat Straße drin?

Antwort

1

Um mit UTF-8 codierten Strings in PHP zu arbeiten, müssen Sie die Erweiterung mbstring verwenden. In diesem Fall ist die gesuchte Funktion mb_strpos().

Oder in diesem Fall können Sie nur preg_replace() verwenden:

preg_replace('/Straße/u', 'Str.', $street); 

Der u Modifikator sorgt dafür, dass UTF-8-Codierung verwendet wird, wenn die Zeichenfolge entspricht. Sie müssen nicht überprüfen, ob die Zeichenfolge vorhanden ist, denn wenn nicht, wird sie nicht ersetzt. Sie können auch die \u00df-Variante überspringen, da json_decode() dieses Literal in das richtige UTF-8-Zeichen konvertiert.

+0

Kumpel! .. vielen Dank !! :). Ich habe den ganzen Tag auf diesem Gestern verbracht .. Tanks viel !! :) – crunchy