Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czytanie z pliku txt znak po znaku
Forum PHP.pl > Forum > Przedszkole
dante90
Siema!
Jak czytać z pliku txt znak po znaku i jednocześnie zwiększać ilość wystąpień znaku w osobnej tablicy, jeżeli znak wystąpi. Domyślnie tablica ma elementy [azAZ] bez polskich znaków wraz z znakami [,.?!-]. Chodzi o stworzenie tablicy wystąpień znaku w tekście , która ma zostać wykorzystana do algorytmu Huffmana.
wookieb
http://php.net/file_get_contents albo http://php.net/file
odczytanie znaku jest normalne
  1. <?php
  2. $ciag[2]; // 3 znak
  3. ?>
erix
~wookieb, a nie lepiej fread" title="Zobacz w manualu PHP" target="_manual z rozmiarem jednego bajtu? tongue.gif
wookieb
Można nawet fpassthru (szybsze od file_get_contents). Od bawienia z fopen i fread odchodze smile.gif Śmierdzi C tongue.gif
erix
Ale on chce znak po znaku... tongue.gif Po co ma pamięć marnować?
wookieb
W pewnym sensie racja ale to już jego wybór smile.gif
dante90
  1. <?php
  2. $tablica = array();
  3. $string = fopen('ala.txt', 'r');
  4. if (!$string)
  5. {
  6.  echo 'Nie można otworzyć plik.txt';
  7. } else
  8. {
  9.  while (false != ($char = fgetc($string)))
  10.  {
  11.      if (in_array($char,$tablica))
  12.      {
  13.          $tablica[$char]++;
  14.          echo "Znalazlo [".$char."]<br />";
  15.      }else
  16.      {
  17.          $tablica[$char]=1;
  18.          echo "Nie znalazlo [".$char."]<br />";
  19.      }
  20.      echo "<pre>";
  21.      print_r($tablica);
  22.      echo "</pre><hr />";
  23.  }
  24. }
  25. fclose($string);
  26.  
  27. ?>


Dlaczego nie moze znaleźć ani jednego znaku;/'
nospor
zobacz w manualu co robi in_array(). Jak po spojrzeniu nie bedziesz wiedzial jeszcze gdzie masz blad, to przyjrzyj się swojej $tablica, a nastepnie ponownie zajrzyj do manuala i zobacz co robi in_array() i na jakich danych operuje (jak ma wygladac tablica, co ma byc kluczem, a co wartością).
Nastepnie powinienes dojsc do dwoch wnioskow:
albo zmien to co wkladasz do tablicy i gdzie
albo uzyj isset()
winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.