我的句子包括ASCII字符代码,如
"#$%
如何删除所有ASCII代码?
我尝试了strip_tags()
,html_entity_decode()
和htmlspecialchars()
,但他们没有效果。
答案 0 :(得分:2)
如果您不想要返回值,可以运行此命令:
preg_replace('/(&#x[0-9]{4};)/', '', $text);
但请注意。这基本上是一个nuker和HTML实体的工作方式我相信这会干扰你的字符串的其他部分。我建议亲自将它们保留下来并将它们编码为@hakra节目。
答案 1 :(得分:2)
您是否尝试删除解析为非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);
如果那不是你想要的,你需要澄清这个问题。
答案 2 :(得分:1)
如果您手头有多字节字符串扩展名,则可以:
$string = '"#$%';
mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
确实给出了:
"#$%
松散相关的是:
使用DOM扩展,您可以加载它并将其转换为字符串,这可能有利于更好地处理HTML元素等等:
echo simplexml_import_dom(@DomDocument::loadHTML('"#$%'))->xpath('//body/p')[0];
输出:
"#$%
如果它包含HTML,您可能需要导出该元素的内部html,这在其他答案中有解释:
答案 3 :(得分:-1)
要从字符串中删除日语字符,可以使用以下代码:
// 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 character properties
Unicode scripts
有些语言由多个脚本组成。没有日语Unicode脚本。相反,Unicode提供了平假名,片假名,汉语和拉丁语脚本,日语文档通常由这些脚本组成。