Sie Ihre Inkrementieren außerhalb der for
Schleife tun und nur Zugriff auf das [0]
Element, so dass sich nirgendwo anders etwas ändert.
Dies sollte wohl in etwa so aussehen:
$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);
sollten Sie wahrscheinlich eine Datenbank für diese verwenden, though. Schau dir PDO und MYSQL an und schon bist du auf dem Weg zur Großartigkeit.
EDIT
zu tun, was Sie in Ihren Kommentaren erwähnt, können Sie einen boolean-Flag gesetzt, und lösen Sie es wie Sie durch das Feld gehen. Dies kann ein break
auch versichern, wenn Sie nur für eine Sache suchen:
...
$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";
}
...
Wie viele Zeilen gibt es in Ihrer '.txt' Datei? – NazKazi
Post einige Beispiel Inhalt Ihrer 'txt' Datei –
eine db wäre so viel einfacher als eine Textdatei für diese –