Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem ze znakami w php(odczyt pliku)
Forum PHP.pl > Forum > Przedszkole
webmaster1989
Witam mam problem ze znakami w php.Otóż odczytuje zawartość pliku UTF-8 ze znakami polskimi do tablicy i po zmianie danych troche w tablicy i zapisie do pliku .W pliku txt dodaje mi się kwadrat dodatkowo.Oto przykładowy plik .txt->
umyć-kończyć
grać-wybrać
(to jest tylko przykład)(moim zadaniem jest dodanie na końcu lini wartości <br>.A plik php mam taki->

  1. <?php
  2. $danez= Array();
  3.  
  4. $i=0;
  5.  
  6. $file ="sample.txt";
  7. $fp = fopen($file, "r");
  8. $dane = fread(fopen($file, "r"), filesize($file));
  9.  
  10. $wynik=explode("\n", $dane);
  11. foreach( $wynik AS $i => $wartosc )
  12. {
  13. $wynik[$i]=$wynik[$i].'<br>';
  14.  
  15. echo $wynik[$i];
  16. }
  17.  
  18.  
  19. $string = implode("\n",$wynik);
  20. echo $string;
  21.  
  22. $fp = fopen($file, "w");
  23. fwrite($fp, $string);
  24.  
  25.  
  26. ?>


Nie chodzi o to mi żeby rozwiązać to na inny sposób bo można to na różne sposoby.Chodzi bardziej mi o fakt dlaczego tak sie dzieje.Dlaczego po tym kodzie:
  1. foreach( $wynik AS $i => $wartosc )
  2. {
  3. $wynik[$i]=$wynik[$i].'<br>';
  4.  
  5. echo $wynik[$i];
  6. }


komputer przed <br> dodaje kwadrat .wedłóg hexów wartość "0D".Dlaczego tak sie dzieje? proszę o pomoc
nospor
to jest \r, którego nie usuwasz po wczytaniu i explode
zamien: $wynik[$i]=$wynik[$i].'<br>';
na: $wynik[$i]=trim($wynik[$i]).'<br>';
sazian
nl2br questionmark.gif
webmaster1989
I tak nie działa:-( nie usunie mi wszystkich nie potrzebnych znaków.Proszę dalej o pomoc

A po drugie funkcja trim usuwa tylko znaki spacji.I do niczego w tym zakresie się nie nadaje.
erix
Cytat
A po drugie funkcja trim usuwa tylko znaki spacji

Hmm, chyba używamy różnych PHP, czyżbyś grzebał w jego źródłach? Dokumentacja mówi przecież wyraźnie, co ta funkcja usuwa: trim.

Cytat
  1. $dane = fread(fopen($file, "r"), filesize($file));
  2.  
  3. $wynik=explode("\n", $dane);

Równie dobrze możesz używać file, to by było lepsze od Twojego, bo by znaków na końcu nie zostawiało (powrót karetki, czyli \r).

Zainteresuj się fgets, przerób swój kod tak, aby z tego korzystał, potem pytaj.
webmaster1989
to jak ty byś to napisał? Erix .Ponieważ kombinowałem na rózne sposoby i nic.Jakaś podpowiedz by się przydała
erix
A raczyłeś zajrzeć tam, dokąd zalinkowałem?
webmaster1989
dobra własnie sprawdziłem.jakby co napisze czy mi wyszło.też niemam zbyt czasu .dzięki za rady.
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.