Php 无法在'上爆炸þ';使用文件获取内容()时

Php 无法在'上爆炸þ';使用文件获取内容()时,php,Php,我需要获取远程文件的内容,然后在符号“þ”上分解这些内容 如果我正在分解的字符串只是一个局部变量,我可以让它工作,但我无法让它与文件_get_contents()一起工作 结果: array(8) { [0]=> string(1) "1" [1]=> string(16) "Classic Los 1/10" [2]=> string(0) "" [3]=> string(2) "15" [4]=> string(1) "1

我需要获取远程文件的内容,然后在符号“þ”上分解这些内容

如果我正在分解的字符串只是一个局部变量,我可以让它工作,但我无法让它与文件_get_contents()一起工作

结果:

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"
}
array(1) {
  [0]=>
  string(42) "1þClassic Los 1/10þþ15þ1þTrueþ2þCú"
}

结果:

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"
}
array(1) {
  [0]=>
  string(42) "1þClassic Los 1/10þþ15þ1þTrueþ2þCú"
}

当我使用file_get_contents()时,为什么不能对该符号进行分解?

在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()


PHP比较原始字节的爆炸。字符“þ”可以用几种不同的编码表示,这意味着使用不同的字节。如果源代码中保存的字符编码与
file.txt
中的编码不同(例如,分别为UTF-8和Latin1),则它们将不匹配,因此不会
分解

您对
file.txt
使用的编码是什么?如果它是UTF-8,那么它应该可以直接工作,但是如果它是其他的,那么可能就不行了。不知道这个符号,但是你有没有尝试过用类似于“%EXPLODE%”的其他符号替换它,然后在新变量上EXPLODE?JSON编码要标准化得多,对PHP友好得多。+1他会这样做:
$parts=EXPLODE(utf8_编码(“þ”),$string);
$parts=explode(utf8_解码(“þ”),$string);