Skocz do zawartości

nieprogramista

Użytkownik
  • Postów

    1
  • Dołączył

  • Ostatnia wizyta

Osiągnięcia nieprogramista

Newbie

Newbie (1/14)

  • One Month Later
  • Week One Done
  • Conversation Starter Unikat

Najnowsze odznaki

0

Reputacja

  1. Witam wszystkich, chciałbym poprosić o pomoc w sprawdzeniu i jeżeli można poprawieniu kodu. Chciałem osiągnąć: Otworzyć plik txt, sprawdzić czy w danej lini występuje konkretny znak, jeżeli występuje to jego wartość wpisać do tabeli. Napisałem taki kod: if ($_POST){ $file = fopen($_POST["plikdootwarcia"], "r"); $tablicaznakow = array('A', 'B', 'C', 'D'); // Pewnie można pobrać te wartości z tabeli $wartosci, ale niewiem jeszcze jak. $wartosci = array( "A" => array(), "B" => array(), "C" => array(), "D" => array() ); while(!feof($file)){ $linia = fgets($file); // Przykładowa linia wygląda: A88 C44.65 D01 foreach ($tablicaznakow as $znak){ if(strpos($linia, $znak) !== false){ $poczatek = strpos($linia, $znak); if(strpos($linia, ' ', $poczatek) !== false) { $koniec = strpos($linia, " ", $poczatek); } elseif(strpos($linia, "\n", $poczatek) !== false) { $koniec = strpos($linia, "\n", $poczatek ); } $wartosci[$znak][] = (float)substr($linia, $poczatek + 1, $koniec - $poczatek); // Niektóre wartości chciałem później zmieniać (dodawać lub odejmować), bez (float) dostawałem błąd, że wartość nie jest liczbą. } else { $wartosci[$znak][] = null; // Bez tego miałem nierówną liczbę wierszy, w zależności których znaków było więcej } } } fclose($plikdootwarcia); $liczba_wierszy = count($wartosci['G']); } W wampie wszystko działa, ale po wgraniu na serwer dostaje komunikat: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 33554440 bytes) in /home/wlasnecn/domains/wlasnecnc.vxm.pl/public_html/index2.php on line 58 Linia 58 to: $wartosci[$znak][] = (float)substr($linia, $poczatek + 1, $koniec - $poczatek); Dzięki za pomoc.
×
×
  • Dodaj nową pozycję...