使用file_get_contents()时无法在'þ'上爆炸

Jam*_*old 7 php

我需要获取远程文件的内容,然后在符号上展开这些内容:"þ".

如果我正在爆炸的字符串只是一个局部变量,我可以使它工作,但我无法使用file_get_contents();

$string = '1þClassic Los 1/10þþ15þ1þTrueþ2þCú';
$parts = explode("þ", $string);
var_dump($parts);
Run Code Online (Sandbox Code Playgroud)

结果:

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"
}
Run Code Online (Sandbox Code Playgroud)
$string = file_get_contents('file.txt');
$parts = explode("þ", $string);
var_dump($parts);
Run Code Online (Sandbox Code Playgroud)

结果:

array(1) {
  [0]=>
  string(42) "1þClassic Los 1/10þþ15þ1þTrueþ2þCú"
}
Run Code Online (Sandbox Code Playgroud)

当我使用file_get_contents()时,为什么我不能在该符号上爆炸?

Pek*_*ica 7

在PHP脚本中输入符号时的符号编码,以及文本文件中的符号编码必须匹配.

确保编码匹配.检查IDE以查看保存PHP脚本的编码.

如果由于某种原因你不会/不能改变任何编码....

  • 如果您的PHP脚本是ISO-8859-1/Windows-1252,并且文本文件是utf-8,请使用

    $parts = explode(utf8_encode("þ"), $string);
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果您的PHP脚本是UTF-8,并且文本文件是ISO-8859-1/Windows-1252,请使用

    $parts = explode(utf8_decode("þ"), $string);
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果您的脚本和文本文件是其他组合,您也可以使用iconv().