文字列からZERO WIDTH NON-JOINER文字を削除したいのですが、使用してstr_replace
も役に立ちませんでした。
3410 次
2 に答える
5
str_replace は、置き換えているものに注意している限り、これを解決する必要があります。
// \xE2\x80\x8C is ZERO WIDTH NON-JOINER
$foo = "foo\xE2\x80\x8Cbar";
print($foo . " - " . strlen($foo) . "\n");
$foo = str_replace("\xE2\x80\x8C", "", $foo);
print($foo . " - " . strlen($foo) . "\n");
期待どおりの出力:
foobar - 9
foobar - 6
于 2012-11-20T20:46:21.577 に答える
0
str_replace は希望どおりに機能しますが、PHP は Unicode をネイティブでサポートしていません。以下はあなたが尋ねることをします。PHP は \u 構文をサポートしていないため、json_decode を使用して Unicode 文字を取得しています。
<?php
$unicodeChar = json_decode('"\u200c"');
$string = 'blah'.$unicodeChar.'blah';
echo str_replace($unicodeChar, '', $string);
?>
編集: 私の方法は機能しますが、fiskfisk のソリューションを使用することをお勧めします。json_decode を使用するよりハックが少なくなります。
于 2012-11-20T20:51:31.027 に答える