2014-03-27 49 views
0

我有一些文件(m.php),我剛剛在這裏面(沒有別的!):誤差)與fgets之間的比較(字符串

000 

,我有這種更爲頁來源:

$file = fopen('m.php', 'a+'); 
$line = fgets($file); 
if ($line == "000") { echo "there is equal"; } 
fclose($file); 

爲什麼在if我沒有得到「有相等」? (它的意思是:000!= 000)

但是如果我'echo $ line' ,其打印給我:000

+1

從[documentation](http://php.net/fgets):「*讀取結束時長度-1字節已被讀取,或換行符(**包含在返回值**中)* 」。換句話說,'$ line'不包含你認爲它的作用。通過檢查'var_dump($ line);' - 在$ line = fgets($ file);'之後添加此語句來驗證這一點。 –

+0

啊,這是問題。我解決這個 – user3419680

回答

0

與fgets()返回換行符,太... :-) 請在比較前斬結果...

<?php 
    $file = fopen('m.php', 'a+'); 
    $line = chop(fgets($file)); 
    if ($line == "000") { 
     echo "there is equal"; 
    } 
    fclose($file); 
?> 
+0

我不明白你的意思?如果我'echo $ line',它打印給我000 – user3419680

+0

你執行的匹配不成功,因爲「000 \ n」!=「000」... – MarcoS

+0

做一個var_dump($ line),你會看到它不是000 –

1

或者你也可以做這樣的

<?php 
    $file = 'm.php'; 
    $line = file_get_contents($file); 
    if ($line == "000") { 
     echo "there is equal"; 
    } 
?> 
+0

使用file_get_contents()從文件中讀取字符串適用於單行文件,但不適用於一般情況... – MarcoS