Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';无法在php中正确读取.txt文件_Php_Strpos - Fatal编程技术网

Can';无法在php中正确读取.txt文件

Can';无法在php中正确读取.txt文件,php,strpos,Php,Strpos,我正在尝试读取从www.groupsort.com下载的文本文件 格式如下所示: Name Rank Team Mike 1 Team 2 Charlie 5 Team 1 Joe 3 Team 1 David 21 Team 3 我也不知道这是否相关,但当我转到pico这个文件时,它不会显示清晰的文本,它只是一堆垃圾,但它是一个.txt文件。奇怪 所以我想获取用户名并将其存储在变量中。这样的事情不应该奏效吗 $fil

我正在尝试读取从www.groupsort.com下载的文本文件

格式如下所示:

Name    Rank    Team
Mike     1      Team 2
Charlie  5      Team 1
Joe      3      Team 1
David    21     Team 3
我也不知道这是否相关,但当我转到pico这个文件时,它不会显示清晰的文本,它只是一堆垃圾,但它是一个
.txt
文件。奇怪

所以我想获取用户名并将其存储在变量中。这样的事情不应该奏效吗

$file = "peopletomove.txt";

$fh = fopen($file,'r');
$MoveTSusers = array();


while (!feof($fh)) { 

   $line = fgets($fh); 
   echo $line."\n";

   $name = strpos($line, " ");   
   $name2 = substr($line, 0, $name);
   echo $name2."\n";

您有选项卡分隔的值。因此,请在选项卡上分开:

while(!feof($fh)) {
    $line = trim(fgets($fh));
    if( !$line) continue; // blank line
    list($name,$rank,$team) = explode("\t",$line);
}

我肯定不仅要检查.txt文件的编码,还要检查php中是否有读取某种编码类型的选项。如果在.txt文件中有UTF-8字符,并以ascii格式读取,则可能会出现垃圾。此外,如果文件是在windows上创建并在*nix系统上读取的,则可能会在文本文件中留下其他字符。在pico中创建一个测试文件,并将其作为附加测试读入,以确保问题出在文件中而不是代码中。我使用的是测试文件,因此我认为这可能是问题所在。您能否输出
$line
并告诉我错误发生在哪一行(输入)?是运行它后得到的输出。此外,第147行是list($name、$rank、$team)=explode(“\t”,$line);这是可行的,我只有一个问题,它跳过了第一行。例如,它不会移动第一行的人。我不知道这是否相关,您可能需要查看我的其余代码?我需要查看,是的。