2014-11-20 33 views
0

專用線我有文本數據庫採取從TXT數據庫PHP

0,Apple,Green 
1,Banana,Yellow 
2,Cherry,Red 

,當我打電話getdata.php?row=2我需要得到的數據是2,cherry,red

我在PHP單身漢,我有一個例子, 請幫我解決這個問題。 感謝

$file_handle = fopen("./news.txt", "rb"); 
while (!feof($file_handle)) { 
    $line_of_text = fgets($file_handle); 
    $parts = explode(',', $line_of_text); 
    print $parts[0] . $parts[1] . $parts[2]; 
} 
fclose($file_handle); 
+1

歡迎來到Stack Overflow。要格式化代碼塊,您不需要'
'標籤。相反,突出顯示代碼並單擊'{}'編輯器工具欄按鈕或'ctl-k'。這些將縮進4個空格,從而製作一個代碼塊,根據標記的語言獲得免費的語法高亮顯示。 – 2014-11-20 21:09:11

回答

0

這工作也將停止,儘快閱讀,因爲它找到了合適的線(不像誰讀取整個沒有文件無論什麼其他的答案)

if (isset($_GET['row'])) 
    { 
     $file_handle = fopen("./news.txt", "rb"); 
     $i = 0; 
     while (!feof($file_handle)) 
     { 
      if ($i == $_GET['row']) 
      { 
       $line_of_text = fgets($file_handle); 
       $parts = explode(',', $line_of_text); 
       print $parts[0] . $parts[1] . $parts[2]; 
       break; 
      } 
     $i++; 
     } 
     fclose($file_handle); 
    } 
0

直截了當地做到這一點:如果記錄數2總是在3

if (!isset($_GET['row']) || !is_int($_GET['row'])) { 
    echo "please supply a row number"; 
    die; 
} 

$lines = file('news.txt'); 

// assumes record number 2 is on line 3 
$row = $_GET['row'] + 1; 

$parts = explode(',', $lines[$row]); 
print $parts[0] . $parts[1] . $parts[2]; 

如果記錄編號2,但不保證上線3號線

$row = $_GET['row']; 
foreach ($lines as $line) { 
    if (strpos($line, $row) === 0) { 
     $parts = explode(',', $lines[$row]); 
     print $parts[0] . $parts[1] . $parts[2]; 
     break; 
    } 
} 

如果文件非常大,您需要從緩衝區逐行讀取。

$row = $_GET['row']; 
if ($fp = fopen('news.txt', 'r')) { 
    while ($line = fgets($fp)) { 
     if (strpos($line, $row) === 0) { 
      $parts = explode(',', $line); 
      print $parts[0] . $parts[1] . $parts[2]; 
      break; 
     } 
    } 
    fclose($fp); 
} 
0

首先必須比你的每個規則的陣列explode("/n", $txt)通過規則爆炸。在將此爆炸存儲到變量之後,您應該再次用,爆炸某個特定值。