你做你遞增for
循環外,並且只能訪問[0]
th元素,所以在其他地方沒有任何變化。
這也許應該是這個樣子:
$filename = 'a.txt';
$lines = file($filename);
// $k = key, $v = value
foreach ($lines as $k=>$v) {
$exploded = explode("|", $v);
// Does this match the site name you're trying to increment?
if ($exploded[0] == "some_name_up_to_you") {
$exploded[1]++;
// To make changes to the source array,
// it must be referenced using the key.
// (If you just change $v, the source won't be updated.)
$lines[$k] = implode("|", $exploded);
}
}
// Write.
file_put_contents($filename, $lines);
你或許應該使用這個數據庫,雖然。看看PDO和MYSQL,你會走向迷人的路。
編輯
要你在你的評論中提到的,你可以設置一個布爾標誌,並觸發它,你走過的陣列。這可以保證一個break
也一樣,如果你只是在尋找一兩件事:它存儲在後您使用的是foreach
循環
...
$found = false;
foreach ($lines as $k=>$v) {
$exploded = explode("|", $v);
if ($exploded[0] == "some_name_up_to_you") {
$found = true;
$exploded[1]++;
$lines[$k] = implode("|", $exploded);
break; // ???
}
}
if (!$found) {
$lines[] = "THE_NEW_SITE|1";
}
...
來源
2012-11-28 05:42:17
Ben
「.txt」文件中有多少行......? – NazKazi
發佈你的'txt'文件的一些示例內容 –
一個數據庫比這個文本文件要容易得多 – 2012-11-28 05:49:38