我有一个名为tracker.txt的文件,其中包含3行。 txt文件是:http://tracker.cpcheats.co/rookie/tracker.txt。我正在使用file_get_contents并使用explode来返回数组的每一行,如下所示:
$read = file_get_contents('tracker.txt');
$filed = explode("\n",$read);
$status = $filed[0];
$server = $filed[1];
$room = $filed[2];
然后我有一个if语句,条件是如果tracker.txt($ status)的第一行是'found',那么它会将第二行和第三行写出到图像上。它不起作用。
if ($status == 'found') {
//write out the server room and language (with shadow)
imagettftext($im, 15, 0, 140, 80, $white, $font, $server);
imagettftext($im, 15, 0, 139, 79, $black, $font, $server);
imagettftext($im, 15, 0, 140, 105, $white, $font, $room);
imagettftext($im, 15, 0, 139, 104, $black, $font, $room);
}
奇怪的是,如果我只打印$ status,$ server和$ room而没有if语句,它可以正常工作并发出正确的行。为什么不适应这种情况呢?因为,我确信http://tracker.cpcheats.co/rookie/tracker.txt的第一行是'找到'。
答案 0 :(得分:2)
您应该尝试使用trim
删除空白空间
$string = file_get_contents("http://tracker.cpcheats.co/rookie/tracker.txt");
$string = explode("\n", $string);
list($status, $server, $room) = array_map("trim", $string);
修剪前
array
0 => string 'found
' (length=6)
1 => string ' (EN) Avalanche
' (length=16)
2 => string 'Ice Berg' (length=8)
//修剪后
array
0 => string 'found' (length=5)
1 => string '(EN) Avalanche' (length=14)
2 => string 'Ice Berg' (length=8)
您能否看到$status
的长度分别为length=6
和length=5
您也可以这样做
if (trim($status) == 'found') {
// ....
}
答案 1 :(得分:0)
看起来你有一个额外的\ r \ n。这有效:
if ($status == "found\r"){
...
}