Jump to content
nieprogramista

PHP Odczyt z pliku txt

Recommended Posts

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.

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...


×
×
  • Create New...