[PHP] Jak dodać liczby


(Podeszwaaaaaa) #1

Elo, mam plik "plik.txt" z zawartością:

pozycja 5

I chce zrobić skrypt który doda "1" do drugiej wartości (w tym przypadku "5") Tu mam skrypt który zmienia zawartość całej linii pliku:

<?php


$nazwaPliku = 'plik.txt';

$index = 13;


if(!isset($_POST['generuj']))

{

echo '

Edytuj:



';

}


elseif(isset($_POST['generuj']))

{

zmianaLinijki($nazwaPliku, $index, $_POST['napis']);

}

function zmianaLinijki($nazwaPliku, $index, $napis) {

$plik=file($nazwaPliku);

$napis="".$napis;

$plik[$index]=$napis."\r\n";

$fp = fopen($nazwaPliku, "w");

while (!flock($fp, 2))

asleep(50);

fputs($fp, implode("", $plik));

flock($fp, 3);

fclose($fp);

echo 'Zmieniono na: ';

echo $_POST['napis'];

}


?>

Da się go jakoś przerobić?


(mario@) #2

Wczytaną linijkę podziel względem spacji/tabulacji (wyrażenia regularne - split, explode) zwiększ liczbę o 1 i ponownie zapisz do pliku.

np. zamiast

$plik[$index]=$napis."\r\n";

napisz

$tresc = explode(' ',$plik[$index]);

$plik[$index]= $tresc[0].' '.((int)$tresc[1]+1)."\r\n";

Samo wywołanie funkcji sam sobie napiszesz - bo z wykorzystaniem formularza dziwnie to wygląda.

Zanim zapiszesz $_POST['napis'] do pliku to odpowiednio ją przefiltruj.