Skocz do zawartości
nieprogramista

PHP Odczyt z pliku txt

Rekomendowane odpowiedzi

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.

 

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...