我在一串丰富的html文本中使用HTML实体,但是像Â这样的某些字符仍然存在......我怎样才能强制使用英文,同时仍然保留html格式或强制它们使用HTML?
答案 0 :(得分:4)
我认为来自phpbuilder的以下代码似乎是合理的。它使用正则表达式检查一些输入($ string)是否包含无效字符。
if(preg_match("@[^a-zA-Z0-9\~`\!\@#$%\^&\*\(\)_\-\+\=\{\}\[\]\'\"\:\;\?\/\>\<\.\,\|]*@", $string) {
// There are non-english characters....
} else {
// There are no non-english characters
}
祝你好运。
答案 1 :(得分:0)
尝试这样的事情:
$arr_busca = array('á','à','â','ã','ª','Á','À',
'Â','Ã', 'é','è','ê','É','È','Ê','í','ì','î','Í',
'Ì','Î','ò','ó','ô', 'õ','º','Ó','Ò','Ô','Õ','ú',
'ù','û','Ú','Ù','Û','ç','Ç','Ñ','ñ');
$arr_susti = array('a','a','a','a','a','A','A',
'A','A','e','e','e','E','E','E','i','i','i','I','I',
'I','o','o','o','o','o','O','O','O','O','u','u','u',
'U','U','U','c','C','N','n');
$nom_archivo = trim(str_replace($arr_busca, $arr_susti, $nom_archivo));
return $nom_archivo;
我是直接从php.net str_replace page得到的,这就是变量是西班牙语的原因......
正如评论中所提到的,这是一个不完整的要检查的字符列表,但这是关于如何检查和替换它们的想法。您可能想要搜索库。