私の文には、次のようなASCII文字コードが含まれています
"#$%
すべての ASCII コードを削除するにはどうすればよいですか?
strip_tags()
、html_entity_decode()
、 、を試しましたが、htmlspecialchars()
うまくいきませんでした。
私の文には、次のようなASCII文字コードが含まれています
"#$%
すべての ASCII コードを削除するにはどうすればよいですか?
strip_tags()
、html_entity_decode()
、 、を試しましたが、htmlspecialchars()
うまくいきませんでした。
非ASCII文字に解決されるエンティティを削除しようとしていますか? それが必要な場合は、次のコードを使用できます。
$str = '" # $ % 琔'; // " # $ % 琔
// decode entities
$str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');
// remove non-ascii characters
$str = preg_replace('/[^\x{0000}-\x{007F}]/u', '', $str);
または
// decode only iso-8859-1 entities
$str = html_entity_decode($str, ENT_QUOTES, 'iso-8859-1');
// remove any entities that remain
$str = preg_replace('/&#(x[0-9]{4}|\d+);/', '', $str);
それがあなたが望むものではない場合は、質問を明確にする必要があります。
戻り値が必要ない場合は、これを実行できます。
preg_replace('/(&#x[0-9]{4};)/', '', $text);
しかし、注意してください。これは基本的にニューカーであり、HTML エンティティの動作方法により、文字列の他の部分に干渉すると確信しています。それらを個人的に残して、@hakra が示すようにエンコードすることをお勧めします。
手元にマルチバイト文字列拡張機能がある場合、これは機能します。
$string = '"#$%';
mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
これは次のことを示します:
"#$%
大まかに関連しているのは次のとおりです。
DOM 拡張機能を使用すると、それを読み込んで文字列に変換できます。これにより、HTML 要素などをより適切に処理できるようになる可能性があります。
echo simplexml_import_dom(@DomDocument::loadHTML('"#$%'))->xpath('//body/p')[0];
出力は次のとおりです。
"#$%
HTML が含まれている場合は、他の回答で説明されているその要素の内部 html をエクスポートする必要がある場合があります。
文字列から日本語の文字を削除するには、次のコードを使用できます。
// Decode the text to get correct UTF-8 text:
$text = html_entity_decode($text, ENT_QUOTES, 'UTF-8');
// Use the UTF-8 properties with `preg_replace` to remove all Japanese characters
$text = preg_replace('/\p{Katakana}|\p{Hiragana}|\p{Han}/u', '', $text);
ドキュメンテーション:
Unicode 文字のプロパティ
Unicode スクリプト
一部の言語は、複数のスクリプトで構成されています。日本語の Unicode スクリプトはありません。代わりに、Unicode は、日本語のドキュメントが通常構成されているひらがな、カタカナ、漢字、およびラテン文字を提供します。