Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]String z pliku do funkcji
mundeck
post
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 2.09.2012

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


Odczytuję z pliku jeden wyraz, przekazuję go jako string do funkcji, ale funkcja nie daje poprawnego wyniku. Ale gdy ten sam string napiszę ręcznie w kodzie, funkcja działa. Wybór funkcji odczytującej (file_get_contents lub fgets) nie ma na to wpływu. Dlaczego tak się dzieje i co mogę z tym zrobić?


  1. //TO NIE DZIAŁA
  2. $slowo = file_get_contents('pliktekstowy.txt');
  3. $slowo2 = przeksztalc_slowo($slowo, 'dodatkowy_argument');
  4.  
  5.  
  6. //TO DZIAŁA
  7. $slowo = 'samochód';
  8. $slowo2 = przeksztalc_slowo($slowo, 'dodatkowy_argument');


Oczywiście sprawdzałem, że w każdym z obu przypadków w zmiennej $slowo kryje się 'samochód'.
Go to the top of the page
+Quote Post
golabow
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 17
Dołączył: 4.07.2014

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


Nie chce mi się wierzyć że w jednym i drugim przypadku zmienna $slowo ma taką samą wartość. Sprawdź jeszcze raz czy ścieżka do pliku jest dobra oraz jego uprawnienia.
Go to the top of the page
+Quote Post
mundeck
post
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 2.09.2012

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


Oczywiście mówiąc "funkcja nie działa" mam na myśli to, że nie daje wyniku zgodnego z oczekiwaniami (co do tego jestem pewien).

Ścieżka do pliku jest dobra, bo inaczej w ogóle by nic nie odczytywało. A odczytuje z pliku, wiem, bo wyrzucałem stringi na ekran i porównywałem. Uprawnienia też chyba są poprawnie ustawione, skoro nie ma problemu z odczytem z pliku?



Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. $slowo = trim($slowo);
Go to the top of the page
+Quote Post
by_ikar
post
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Taa to co napisał @Pyton. Jak nie wiesz dlaczego coś nie działa, to printuj dane. var_dump twoim przyjacielem w każdej sytuacji.
Go to the top of the page
+Quote Post
mundeck
post
Post #6





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 2.09.2012

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


No dzięki za podpowiedzi, ale dalej nie działa :/

Wynik działania var_dump jest taki:

string(15) "?s#w#ż_a(6Qa"
string(12) "s#w#ż_a(6Qa"

Czytałem, że za pomocą odpowiedniej funkcji można "rozebrać" napisy, przedstawiając kody ASCII każdej z liter, no i wynik jest taki:

23 c5 83 c5 ba 51 78 52 5f 5e c5 ba 4e 51 73
73 23 77 23 c5 bc 5f 61 28 36 51 61

Użyłem mb_detect_encoding, ale w obu przypadkach wyświetla UTF-8. Użyłem też funkcji trim dla pierwszego stringa, ale nie ma różnicy

O co w takim razie może chodzić?

Ten post edytował mundeck 27.08.2014, 19:49:52
Go to the top of the page
+Quote Post
nospor
post
Post #7





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




Ale po co rozbierac....

Przeciez
string(15) "s#w#ż_a(6Qa"
string(12) "s#w#ż_a(6Qa"

wyraznie widac, ze jeden ma 15 znakow a drugi tylko 12.... Wiec logiczne ze sie roznią.... Ten co ma 15 znakow, to ma pewnie jakies biale znaki. Musisz uzyc TRIM()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


a plik jest w UTF? Bez BOM ?

Ten post edytował Pyton_000 27.08.2014, 19:51:09
Go to the top of the page
+Quote Post
mundeck
post
Post #9





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 2.09.2012

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


TRIM(), jak pisałem, nic nie daje.

Dopiero teraz czytam, co to jest BOM wink.gif

Czy dobrym rozwiązaniem będzie utworzenie tego pliku za pomocą skryptu, zamiast wrzucanie na serwer pliku utworzonego w Notatniku?
Go to the top of the page
+Quote Post
nospor
post
Post #10





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




Cytat
TRIM(), jak pisałem, nic nie daje.
Fucktycznie... na szybko pisalem odpowiedz. Moja wina.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post
Post #11





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Możesz go zrobić czymś pokroju notepad++ czy inne które potrafią zapisać bez bom.
Go to the top of the page
+Quote Post
celbarowicz
post
Post #12





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


Dlaczego 'to' działa? Jak był tworzony plik tekstowy?

  1. <?php
  2. //TO NIE DZIAŁA
  3. $slowo='samochód';
  4. file_put_contents('pliktekstowy.txt',$slowo);
  5. echo $slowo = file_get_contents('pliktekstowy.txt');
  6. echo '<br>';
  7. echo var_dump($slowo);
  8. echo '------------------';
  9. echo '<br>';
  10.  
  11. // $slowo2 = przeksztalc_slowo($slowo, 'dodatkowy_argument');
  12.  
  13.  
  14. //TO DZIAŁA
  15. echo $slowo = 'samochód';
  16. echo '<br>';
  17. echo var_dump($slowo);
  18. // $slowo2 = przeksztalc_slowo($slowo, 'dodatkowy_argument');
  19.  
  20. ?>
  21.  
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 - 17:14