如何用PHP读取文本文件?

问题描述:

我有一个名为Se7enPlug.dspl的文本文件。在这个文件中我只有一个行文字,格式如下:如何用PHP读取文本文件?

text1,text2,text3 

我需要读取这个文件,并返回这样的事情:

public function rconGetNextMap() { 

    $myFile = "E:\mw3-server\admin\Se7enPlug.dspl"; 
    $fh = fopen($myFile, 'r'); 
    $theData = fread($text1,$text2,$text3); 
    fclose($fh); 
    echo $theData; 

    if ($theData) { 

     $next = array("map" => $text1, "gametype" => $text2, 0=>$text1, 1=>$text2); 
    } 
    elseif (!$theData)) { 

     $next = array("map" => "Unknown", "gametype" => "Unknown", 0=>"Unknown",1=>"Unknown"); 
    } 
    return $next; 
} 

正如你看到它有很多问题。我该如何解决它?

+1

[fgetcsv()](http://php.net/manual/en/function.fgetcsv.php )将是一个很好的起点 – 2012-11-18 21:07:12

+0

我可以从你那里得到解决我的鳕鱼的请求吗? – user1743737

+2

你的鱼如何破碎? – 2012-11-18 21:16:54

这将在您的文本文件中读取与所述第一和第二值保存到数组

<?php 

    $myFile = "E:\mw3-server\admin\Se7enPlug.dspl"; 
    $fh = fopen($myFile, 'r'); 
    $theData = fgetcsv($fh,$delimiter = ','); 

    if ($theData) { 

     $next = array("map" => $theData[0], "gametype" => $theData[1]); 
    } 

?> 

更好地利用fgetcsv()作为达贡指出:

public function rconGetNextMap() { 
    $myFile = '...'; 
    $handle = fopen($myFile, 'r'); 
    $retArray = array(
    'map' => 'Unknown', 
    'gametype' => 'Unkown', 
); 

    if (!$handle) { 
    return $retArray; 
    } 

    $data = fgetcsv($handle, 1000, ',', '"'); 

    if ($data !== false) { 
    $retArray['map'] = $data[0]; 
    $retArray['gametype'] = $data[1]; 
    } 
    fclose($handle); 
    return $retArray; 
} 

我已删除从输出阵列的两个数值指标。我不会推荐他们,因为他们代表了冗余数据。但你可以轻松地添加它们。

+0

@KingCrunch:你为什么要删除我最后的句子,并且可以为最后一次编辑添加一个参考(如果第三个参数需要,需要第四个参数)? – ComFreek

+0

没有。也许你添加了它,而我编辑了我的编辑?参考是:尝试一下;)(更新:也许它是固定的5.4?不能再现它了。也许你可以忽略它) – KingCrunch

+0

@KingCrunch我无法使用PHP 5.4.7重现它(目前升级到5.4.8)。但它不会伤害;) – ComFreek