Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[PHP] Dodawanie liczb z pliku

AJOT74 21 Lut 2017 19:13 714 4
  • #1 21 Lut 2017 19:13
    AJOT74
    Poziom 10  

    Napisałem coś takiego w PHP:

    Kod: php
    Zaloguj się, aby zobaczyć kod


    I pełne zaskoczenie -ponieważ pobrana wartość z pliku wynosi 123, otrzymany wynik 10.
    Wielokrotnie korzystałem z funkcji:
    $ile++;
    i wszystko było OK, ale gdy chciałem skorzystać z funkcji:
    if ($ile>20)
    {
    ....
    }
    okazało się, że PHP nie wchodzi we wskazane zadanie, wtedy spróbowałem właśnie przykładu:
    $ile=$ile+10;
    i wynik mnie zaskoczył.
    Na serwerze mam PHP wersji 5.6

    0 4
  • #2 21 Lut 2017 20:15
    JacekCz
    Poziom 35  

    divide et impera.
    Dziel problem na mniejsze, potwierdzaj ich działanie (ewentualnie znajdują błędy).
    Sposób czytania idzie bardzo po bandzie (w sensie ogromny skrót myslowy).
    Zakładać wypada, że php ma ogromny zakres tolerancji, ale to nie jest dobre, zwykle "jakoś działa" przez domniemania "co użytkownik miał na myśli", zarówno podczas operacji plikowych, jak i arytmetycznych.
    Nie przeszło by to w żadnym języku programowania, jaki uprawiam.

    0
  • #3 22 Lut 2017 07:33
    AJOT74
    Poziom 10  

    Działanie potwierdzałem, po odczytaniu zmiennej z pliku upewniłem się czy istnieje... -istnieje -ECHO ją wyświetla.
    po operacji:
    $ile=$ile+10;
    wynik wychodzi 10 zamiast 133.

    JacekCz napisał:
    Nie przeszło by to w żadnym języku programowania, jaki uprawiam.
    -a to dziwne rzeczy opowiadasz...
    Dodano po 10 [godziny] 53 [minuty]:
    Dodam jeszcze tylko, że odczytywany plik jest w postaci TXT a więc zapis w pliku wyglądam mniej więcej:

    123
    Myszka
    Gruszka

    Piszę o tym gdyż odczytując pojedynczą liczbę to wszystko jest OK.

    0
  • #4 22 Lut 2017 09:11
    pralat
    Poziom 12  

    Wyświetl przy pomocy var_dump wartość fgets($ucho4), zobaczymy wtedy do faktycznie się odczytuje jako ta pierwsza linia.
    JacekCz mógł mieć na myśli np. fakt, że do stringa dodajesz int, licząc na to, że php po cichu dokona konwersji (co faktycznie się  dzieje). Ja wykonałbym intval(), żeby zaznaczyć jawnie swoje intencje, ale co kto lubi.

    0
  • #5 21 Maj 2017 14:03
    AJOT74
    Poziom 10  

    Problem był nie w tym co pisałem, problem wynikł z faktu, że podczas kopiowania plików z jednego serwera na drugi na samym początku pliku pojawiały się dziwne znaki które udało mi się zobaczyć podczas otwarcia pliku pod edytorem działającym w DOS. Dlatego też PHP nie potraktowało wartości jako cyfra lecz tekst.

    0