Odczytywanie sumy z pliku txt

0

Witam! Zrobiłem parę skryptów php, i cala moja praca siedzi sobie w pliku "liczby.txt". Jak sama nazwa wskazuje, są to liczby :D. Są one zapisane w formie "1+1+1+1+1-1-1+1-1+1 itd...".i tutaj pojawia się mój problem. Jak odczytać ten plik, w formie sumy, a nie ciągu znaków "1+1-1..."? Proszę o pomoc.

0

Jeżeli plik wygląda tak:
1+3+2+5+9
A chcesz obliczyć jego sumę, to możesz skorzystać z funkcji explode(http://php.net/manual/en/function.explode.php).
Zamieni ona wyżej wymieniony ciąg znaków na tablicę:

$liczby = explode("+", $ciag_znakow);
echo $liczby[0]; //1
echo $liczby[1]; //3
echo $liczby[2]; //2
//itd

Potem wystarczy ją tylko do siebie dodać i mamy wynik.

0

wszystko byłoby dobrze, tylko zamiast liczby widać napis "array". Co to znaczy :p ?

No więc może od początku. Chciałbym zrobić punktacje (tzn 2 przyciski, jeden like, drugi dont like). Wszystko mi dobrze idzie, ale nie wiem, jak napisać skrypt, który podlicza punkty (za like "+1", za dlike "-1"). Próbowałem zrobić skrypt z zapisaniem do pliku, ale nie wychodzi. Oto mój skrypt:

<?
$like = $_POST[like];
$ile = fopen("save.txt","r");
$licz = fread($ile,"123");
fclose($ile);
if($like == "like")
{
$just = fopen("save.txt","a");
fwrite($just,"+1");
fclose($just);
}
elseif($like == "dlike")
{
$just = fopen("save.txt","a");
fwrite($just,"-1");
fclose($just);
}
$liczby = explode("+", $ile);
echo"$liczby";

?>

Ktoś pomoże :D ?

0

Musisz dodać do siebie elementy tablicy.
Np.tak:

$suma = 0;
for ($I=0; $I<count($liczby); $I++)
 $suma += $liczby[$I];
0

Nie wiem co o tym myśleć. Wszystko śmiga jeśli liczby wpisze ręcznie:

<?php
echo(1+1+1-1+1-1+1);
?> 

Natomiast jeśli chcę odczytać taki sam zapis cyferek, ale z pliku, to nie działa!

<?php
$czyta = fread($plik,ilosc_tam); //czyta ten plik z tymi jedynkami :D
echo($czyta);
?>

w tym wypadku wyświetla mi się cały plik w postaci "1+1+1-1+1-1itd.", a chciałbym żeby był sumą tych liczb. Proszę o pomoc.

0

Przeczytaj mój post powyżej.
Musisz ręcznie dodać każdy element tablicy.
Ewentualnie pokombinuj z funkcją eval.

0

To może znasz jakiś łatwiejszy skrypt, na ocenianie zdjęć. Ten skrypt umieściłem pod przyciskami (like i dlike), i chodzi mi głównie oto żeby wyświetlała się jedna liczba, która będzie sumą tych ;D Rozumiesz? :D

No logicznym rozwiązaniem byłoby czytanie pliku oceny a potem nadpisanie go po zmianie wartości. Aż dziwne że sam na to nie wpadłeś @.@

0

Przepraszam, że tak późno pisze jeszcze o tym, ale znalazłem odpowiedź na to pytanie. Szczerze, to już dawno ją znalazłem, ale nie miałem czasu, żeby wrzucić to na forum. Więc :

<?
$like = $_POST[like];
$df  = "justin.dat";
if(!($fp=@fopen($df, "r"))){
   $count=0;
}
else {
   $count = fgets($fp, 100);
   fclose($fp);
}

if($like == "like")
{
$count+=1;
}
elseif($like == "dlike")
{
$count-=1;
}
else
{
}
$fp = fopen($df, "w");
if(!flock($fp, LOCK_EX)){
   fclose($fp);
   return;
} else {
   fputs($fp, $count);
   flock($fp, LOCK_UN);
   fclose($fp);
}
echo $count;
?>

mam nadzieje, że komuś się przyda :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1