Can';无法在php中正确读取.txt文件
我正在尝试读取从www.groupsort.com下载的文本文件 格式如下所示: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
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);这是可行的,我只有一个问题,它跳过了第一行。例如,它不会移动第一行的人。我不知道这是否相关,您可能需要查看我的其余代码?我需要查看,是的。