左からのすべての文字をUnicode文字ではないものに置き換えるPHPのスニペットがあります。1 つの例外を除いて、問題なく動作しますが、その理由がわかりません。誰でも助けることができますか?
<?php
$B=$A;
do{
$A=$B;
$B=preg_replace('/^[^\pL\s]/','',$B);
}
while($B!=$A);
echo $B;
?>
糸みたいに餌をやる"\\*^&\\\@@\816.80831téstmé"
と綺麗に吐き出し"téstmé"
ます。
$A="*^&\\\@@\816.80831[+"
空の文字列を返します。これも正しいです。
しかし、 を入力する"\\*^&\\\@@\816.80831"
と"831"
、実際には空の文字列である必要があるのに、 になります。
"^&\\\@@\8016.8048.31"
ゼロとドットに関係があるようですが、パターンも解決"48.31"
"^&\\\@@\8016.8148.31"
策
も見つかりません。strval を追加しようとしましたが、それでも同じ結果です。多分誰かが答えを持っていますか?サンクス。
"^&\\\@@\8016.8148067"
"16.8148067"
"^&\\\@@\8116.8148167"