好的,我錯過了什麼?如果超過50行,我正在嘗試清除文件。PHP:如果超過50行,清除一個文本文件
這是我到目前爲止。
$file = 'idata.txt';
$lines = count file($file);
if ($lines > 50){
$fh = fopen('idata.txt', 'w');
fclose($fh);
}
好的,我錯過了什麼?如果超過50行,我正在嘗試清除文件。PHP:如果超過50行,清除一個文本文件
這是我到目前爲止。
$file = 'idata.txt';
$lines = count file($file);
if ($lines > 50){
$fh = fopen('idata.txt', 'w');
fclose($fh);
}
$file = 'idata.txt';
$lines = count(file($file));
if ($lines > 50){
$fh = fopen('idata.txt', 'w');
fclose($fh);
}
太糟糕了,我沒有得到意見分:P – brbcoding 2013-05-13 17:28:32
@brbcoding太糟糕了,我們無法分割/分享積分。稱它爲「合資企業」;-) – 2013-05-13 17:33:35
是的,做到了,我必須嘗試應該抓住這一點。謝謝你! – ToxicMouse 2013-05-13 17:40:50
的語法計數是wrong.Replace此行count file($file);
通過
count(file($file));
這個確切的答案就在你的下方。提前5分鐘發佈。 – brbcoding 2013-05-13 17:32:28
5分鐘前發佈的答案只包含固定代碼。甚至沒有一個解釋的單詞。想要指出確切的錯誤,那就是爲什麼發佈答案。 – 2013-05-13 17:35:56
如果文件真的可以大你更好的循環:
$file="verylargefile.txt";
$linecount = 0;
$handle = fopen($file, "r");
while(!feof($handle)){
$line = fgets($handle);
$linecount++;
if(linecount > 50)
{
break;
}
}
應該做這項工作,而不是整個文件在內存中。
你在你的語法錯誤,應該是count(file($file));
使用這種方法不建議對較大的文件,因爲它加載該文件到內存中。因此,在大文件的情況下它不會有幫助。這是另一種解決此問題的方法:
$file="idata.txt";
$linecount = 0;
$handle = fopen($file, "r");
while(!feof($handle)){
if($linecount > 50) {
//if the file is more than 50
fclosh($handle); //close the previous handle
// YOUR CODE
$handle = fopen('idata.txt', 'w');
fclose($handle);
}
$linecount++;
}
'count file()'是無效的語法...?! – deceze 2013-05-13 17:22:47
嘗試'計數(文件($文件))' – brbcoding 2013-05-13 17:23:03
同上上'brbcoding's'建議;-) – 2013-05-13 17:24:42