Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]problem ze znakami w php(odczyt pliku)
webmaster1989
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 31.08.2010

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


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
Powód edycji: [erix]: używaj bbcode
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




to jest \r, którego nie usuwasz po wczytaniu i explode
zamien: $wynik[$i]=$wynik[$i].'<br>';
na: $wynik[$i]=trim($wynik[$i]).'<br>';
Go to the top of the page
+Quote Post
sazian
post
Post #3





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


nl2br (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
webmaster1989
post
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 31.08.2010

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


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.
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.
Go to the top of the page
+Quote Post
webmaster1989
post
Post #6





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 31.08.2010

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


to jak ty byś to napisał? Erix .Ponieważ kombinowałem na rózne sposoby i nic.Jakaś podpowiedz by się przydała
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A raczyłeś zajrzeć tam, dokąd zalinkowałem?
Go to the top of the page
+Quote Post
webmaster1989
post
Post #8





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 31.08.2010

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


dobra własnie sprawdziłem.jakby co napisze czy mi wyszło.też niemam zbyt czasu .dzięki za rady.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.12.2025 - 22:27