Php HTML到纯文本-未知的原始编码
我正在使用PHP,从网站获取html,将其转换为纯文本并保存到数据库中 它们需要以utf-8格式保存到数据库中。 我的第一个问题是我不知道原始编码,从未知编码到utf-8的最佳编码方式是什么 第二个问题是html到纯文本的转换。我试着使用html2text,但它把所有的外国utf字符都搞乱了 最好的方法是什么 编辑:关于纯文本的部分似乎不够清晰。我不需要只剥离html标记。我想在保留一种文档结构的同时去掉标签<代码>,Php HTML到纯文本-未知的原始编码,php,html,character-encoding,arabic,strip-tags,Php,Html,Character Encoding,Arabic,Strip Tags,我正在使用PHP,从网站获取html,将其转换为纯文本并保存到数据库中 它们需要以utf-8格式保存到数据库中。 我的第一个问题是我不知道原始编码,从未知编码到utf-8的最佳编码方式是什么 第二个问题是html到纯文本的转换。我试着使用html2text,但它把所有的外国utf字符都搞乱了 最好的方法是什么 编辑:关于纯文本的部分似乎不够清晰。我不需要只剥离html标记。我想在保留一种文档结构的同时去掉标签,标签将转换为换行符等,像这样的标签将与其内容一起完全删除。 使用mb\u detect
标签将转换为换行符等,像
这样的标签将与其内容一起完全删除。- 使用
进行编码检测mb\u detect\u encoding()
- 使用
去除HTML标记strip_tags()
此功能可能对您有用:
<?php
function FixEncoding($x){
if(mb_detect_encoding($x)=='UTF-8'){
return $x;
}else{
return utf8_encode($x);
}
}
?>
mb\u detect\u编码似乎就是我想要的。但脱衣舞标签并不完全是这样。我需要一个更高级的库,比如html2text,它对utf8友好。@chaft:html2text用于转换和格式化文本。如果它是utf8友好的,那么它不应该弄乱字符。检查以下状态:“[strip_tags()
]如果仅使用UTF-8,则可能是多字节安全的(多字节UTF-8字符不包含类似小于或大于符号的字节序列)。避免使用UTF-16和UTF-32等。”@EmirAkaydın:I'd+1如果可以的话,请再次回答。:)@赫伯特html2text不支持utf8。strip_tags()不是我要找的。它不分青红皂白地剥离标签,可能会破坏带有html标签的文本使用类似的标记时,它会混淆javascipt和文本。@AntonioLaguna utf8\u encode仅转换ISO-8859-1编码的字符串,不确定您希望从text/plain
编码中得到什么(您是想保留标记、去除标记,还是介于两者之间)。。。也许值得一看HTML净化器的转换:相关:是的,但不是utf8_编码,您应该使用mb_convert_编码。utf_编码仅从ISO-8859-1编码