2013-02-09 206 views
0

我有隻有一條線,從1到40數字的文件,我有以下代碼:PHP讀取從一個txt文件數量,使然後計算

$file_line = file('../countersaver.txt'); 
foreach ($file_line as $line) { 
    $line_result = $line; 
} 

echo $line; 

我要計算$line - 1的結果並回顯該結果。

但是當我做:

$line = $line - 1; 

話,就說明$line - 1而實際上並沒有做計算。

+0

嘗試'var_dump($ line)'首先檢查你有什麼在它 – 2013-02-09 10:15:52

+0

它顯示字符串(5)「20」 – 2013-02-09 10:18:00

+0

20是兩個字符,所以你有額外的空白在那裏是不可打印的。它可能是UTF-8 Byte-Order-Mark,長度爲三個ASCII字符,但會打印出來。它可能是'\ r'什麼的。 – Amelia 2013-02-09 10:31:34

回答

1

您的代碼對文件內容的更改很弱。例如,如果某人添加了幾行空行,您的代碼將無法工作。嘗試了這一點,而不是:

​​
+0

同樣的問題,它顯示20-1(20是文件中的數字),也許我必須將字符串轉換爲整數?但如何 – 2013-02-09 10:20:22

+0

@FlorianWenin PHP是鴨子類型,但你可以通過使用'$ int =(int)$ string;' – Amelia 2013-02-09 10:25:04

+0

顯式強制轉換即使沒有強制轉換,我也應該罰款'echo「20」 - 1;''echo'20「 - 「1」;'輸出19.然而,如果你做'$ line = 20; echo「$ line - 1」;'這會輸出'20 - 1' – 2013-02-09 10:26:55

0

嘗試

$line = ($line -1); 
echo $line 

更換

$line = $line - 1; 
echo $line 

這將打印的19,而不是20-1。

相關問題