最初に、アンパサンド (&) が htmlentities 関数にある場合、アンパサンドが 5 文字としてカウントされることに気付きました。したがって、このコード:
$a = htmlentities("&12345");
$b = substr($a,0,6);
echo $b;
'&1'
5文字としてカウントされていると思います。さらに興味深いのは、GBP 記号 (£) が一緒に無視されるため、次のようになります。
$a = htmlentities("£");
echo $a;
何もエコーしません。Chrome と FF で同じ結果が得られます。これがバグなのか、別の構文を使用する必要があるのか わかりません。なぜこれが起こっているのか誰にも分かりますか?ありがとう
アップデート
これで£の問題を解決しました:$a = htmlentities("£", ENT_COMPAT, 'ISO-8859-15');
しかし、アンパサンドの問題は残ります。