我有json输出Kirchhellener Stra'u00dfe
..'u00df
为utf8编码的德文字母ß
。我想在输出中搜索单词Straße
并替换它,但是我不知道怎么做?
$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";
}
我如何检测$street
中是否有Straße
?
要在PHP中使用UTF-8编码的字符串,必须使用mbstring
扩展。在本例中,您要查找的函数是mb_strpos()
。
或者,在这种情况下,您可以直接使用preg_replace()
:
preg_replace('/Straße/u', 'Str.', $street);
u
修饰符确保在匹配字符串时使用UTF-8编码。你不需要检查字符串是否存在,因为如果它不存在,它将不会被替换。您也可以跳过'u00df
变体,因为json_decode()
会将该文字转换为适当的UTF-8字符。