Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z odczytywaniem z pliku
vmax96
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.10.2014

Ostrzeżenie: (0%)
-----


Witajcie
Bardzo proszę, abyście mnie nie hejtowali - jak temat już był czy coś takiego - jest na forum od dziś i nie wszystko zdążyłem poznać.
Do rzeczy:
Od niedawna uczę się php i chciałem (przy użyciu file_get_contents) zrobić prosty skrypcik, który policzy średnią liczb znajdujących się w pliku. Zawartość pliku wygląda następująco
(linia)(wartosć)
1. 2
2. 2
3. 2
4. 2
W skrypcie wypociłem coś takiego
  1. $fp = file_get_contents("1.txt");
  2. $tab = explode("\n", $fp);
  3. $suma = 0;
  4. $ile = count($tab);
  5. // echo $ile;
  6. foreach ($tab as $tmp){
  7. $suma = $suma + $tmp;
  8. }
  9. echo $suma / $ile;

Nie wiem dlaczego wynik wychodzi 1.5 skoro 8 / 2 = 4
Działa to dopiero jak lekko zmodyfikuję plik i kod. Mianowicie:
Plik:
(linia)(wartość)
1.
2. 2
3. 2
4. 2
5. 2
A kod wygląda tak:
  1. <?php
  2. $fp = file_get_contents("1.txt");
  3. $tab = explode("\n", $fp);
  4. $suma = 0;
  5. $ile = count($tab);
  6. // echo $ile;
  7. foreach ($tab as $tmp){
  8. $suma = $suma + $tmp;
  9. }
  10. echo $suma / ($ile-1);
  11. ?>

Mógłbym oczywiście to zostawić i pójść dalej, ale zależy mi, aby się dowiedzieć dlaczego pierwsza wersja nie zadziałała - co takiego zrobiłem źle smile.gif
Go to the top of the page
+Quote Post
StrefaPi
post
Post #2





Grupa: Zarejestrowani
Postów: 235
Pomógł: 50
Dołączył: 2.03.2013

Ostrzeżenie: (0%)
-----


nie masz pustych linii w pliku?, albo kodowanie niestandardowe...


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post
vmax96
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 31.10.2014

Ostrzeżenie: (0%)
-----


Cytat(StrefaPi @ 31.10.2014, 20:05:50 ) *
nie masz pustych linii w pliku?, albo kodowanie niestandardowe...

Faktycznie... Miałem ustawione kodowanie pliku .txt na utf-8...Zmieniłem na ANSI i wszystko działa normalnie. Dzięki za pomoc
Mam jeszcze pytanie. Umiesz mi wyjaśnić dlaczego w tym przypadku kodowanie wpływa na to jak zachowuje się skrypt ?
Go to the top of the page
+Quote Post
StrefaPi
post
Post #4





Grupa: Zarejestrowani
Postów: 235
Pomógł: 50
Dołączył: 2.03.2013

Ostrzeżenie: (0%)
-----


bo prawdopodobnie miałeś utf-8 z BOM co powiększa wielkość pliku, a tym samym jest dodatkowa linia na początku


--------------------
https://studiostawki.com - studio fotograficzne i filmowe - ul. Inflancka 11, Warszawa
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 22:33