我有这样的字符串:
Suède · Slovénie
我需要通过·
来爆炸它我尝试了各种解决方案,如:
preg_split("/[?·]/",strip_tags($single->children(2)->outertext))
explode(chr(149), strip_tags($single->children(2)->outertext));
explode(utf8_encode('·'),strip_tags($single->children(2)->outertext));
explode('·',strip_tags($single->children(2)->outertext));
但没有一个解决方案适合我!任何人都可以告诉我吗?
答案 0 :(得分:3)
您应该使用mb_split():
var_dump(mb_split('·', 'Suède · Slovénie'));
给出
array(2) {
[0]=>
string(7) "Suède "
[1]=>
string(10) " Slovénie"
}
答案 1 :(得分:0)
这似乎适用于给定的字符串,但可能不适用于所有字符串。
preg_split("/\b (\W+) \b/", $str);
答案 2 :(得分:0)
您的文件最有可能使用Utf-8。在Utf-8 ·
由两个字节(0xC2,0xB7)组成,像"/[?·]/"
这样的表达式将在这些字节中的任何一个上中断。相反,您必须使用u
修饰符来使用Utf-8模式:
$ php -r 'print_r(preg_split("/[?·]/u", "Suède·Slovénie"));'
Array
(
[0] => Suède
[1] => Slovénie
)
更好的是使用mb_split()
多字节感知拆分功能,但并不总是可用。
答案 3 :(得分:0)
您似乎正在使用simplehtmldom
且未正确对字符进行编码,请按以下方式使用str_get_html
:
//mb_convert_encoding will try to detect the `$html` encoding and convert it to `UTF-8`
$html = str_get_html(mb_convert_encoding(file_get_contents("http://somesite.com"), 'auto', 'UTF-8'));
然后,你可以简单地使用:
explode('·',strip_tags($single->children(2)->outertext));
答案 4 :(得分:0)
我找到了解决方案,·
=·我们需要把这个问题放在一边。
explode('·',$str);