我需要获取远程文件的内容,然后在符号上展开这些内容:“þ”。
如果我爆炸的字符串只是一个局部变量,我可以使它工作,但我无法使用file_get_contents();
$string = '1þClassic Los 1/10þþ15þ1þTrueþ2þCú';
$parts = explode("þ", $string);
var_dump($parts);
结果:
array(8) {
[0]=>
string(1) "1"
[1]=>
string(16) "Classic Los 1/10"
[2]=>
string(0) ""
[3]=>
string(2) "15"
[4]=>
string(1) "1"
[5]=>
string(4) "True"
[6]=>
string(1) "2"
[7]=>
string(2) "Cu"
}
$string = file_get_contents('file.txt');
$parts = explode("þ", $string);
var_dump($parts);
结果:
array(1) {
[0]=>
string(42) "1þClassic Los 1/10þþ15þ1þTrueþ2þCú"
}
当我使用file_get_contents()?
时,为什么我不能在该符号上爆炸?答案 0 :(得分:7)
在PHP脚本中输入符号时的符号编码,以及文本文件中的符号编码必须匹配。
确保编码匹配。检查您的IDE以查看保存PHP脚本的编码。
如果由于某种原因你不会/不能改变任何编码....
如果您的PHP脚本是ISO-8859-1 / Windows-1252,并且文本文件是utf-8,请使用
$parts = explode(utf8_encode("þ"), $string);
如果您的PHP脚本是UTF-8,文本文件是ISO-8859-1 / Windows-1252,请使用
$parts = explode(utf8_decode("þ"), $string);
如果您的脚本和文本文件是其他组合,您也可以使用iconv()
。
答案 1 :(得分:3)
PHP比较爆炸的原始字节。字符“þ”可以用几种不同的编码表示,这意味着使用不同的字节。如果在源代码中保存字符的编码与file.txt
中的编码(分别为UTF-8和Latin1)不同,则它们将不匹配,因此不会{{1} }。