我有以下代碼從文件中讀取,並在計算後寫回。文件中的變量內容消失,循環不輸入
if(file_exists(CACHE_FILE_PATH)) {
//read the cache and delete that line!
$inp = array();
$cache = fopen(CACHE_FILE_PATH, 'r');
if($cache) {
while(!feof($cache)) {
$tmp = fgets($cache);
//some logic with $tmp
$inp[] = $tmp;
}
fclose($cache);
}
var_dump($inp);
$cache = fopen(CACHE_FILE_PATH, 'w');
var_dump($inp);
if($cache) {
var_dump($inp);
foreach ($inp as $val) {
echo "\nIN THE LOOP";
fwrite($val."\n");
}
fclose($cache);
}
}
的var_dumps的輸出是:
array(3) {
[0]=>
string(13) "bedupako|714
"
[1]=>
string(16) "newBedupako|624
"
[2]=>
string(19) "radioExtension|128
"
}
array(3) {
[0]=>
string(13) "bedupako|714
"
[1]=>
string(16) "newBedupako|624
"
[2]=>
string(19) "radioExtension|128
"
}
array(3) {
[0]=>
string(13) "bedupako|714
"
[1]=>
string(16) "newBedupako|624
"
[2]=>
string(19) "radioExtension|128
"
}
即使它的陣列,它不是在循環會和印刷IN THE LOOP
!爲什麼?
'$ cache'可能不會評估爲'true'。你在不同的地方有3個'var_dump()'調用,所以不可能知道代碼的哪個部分被執行。 – MrCode
fwrite($ val。「\ n」);'不會在這裏抱怨,因爲第一個參數是文件資源。 – Crisp