Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Długość stringa w bajtach
korro
post 26.11.2009, 08:15:08
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

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


Witam.

Czy funkcja strlen() zwróci rzeczywistą, bajtową długość stringa?
Co, jeśli w łańcuchu będą znaki UTF?

Z góry dzięki za odpowiedź.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
batman
post 26.11.2009, 08:19:32
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Od tego właśnie jest manual.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
korro
post 26.11.2009, 08:21:30
Post #3





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

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


Sprawdzałem tę funkcję zanim założyłem wątek, zwraca to samo, co strlen.

Ma ktoś praktyczne doświadczenie z tematem?


--------------------
Go to the top of the page
+Quote Post
nospor
post 26.11.2009, 08:26:08
Post #4





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




http://www.php.net/manual/en/function.strlen.php
i sobie wejdź sekcję SEE ALSO
No trochę samodzielności...


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

"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
zegarek84
post 26.11.2009, 08:28:47
Post #5





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


zwróci właściwą długość - przy znakach typu ą podlicza 2 - dlatego jeśli chce się liczbę znaków a nie bajtów przy kodowaniu UTF stosuje się mb_strlen...
jeszcze jeśli chcesz wysłać nagłówek z ilością znaków to jeśli używasz ob_ start możesz użyć ob_get_length - jeśli jeszcze kompresujesz przez ob_gzhandler to powyższe zwróci niepoprawną wartość - jest kilka sposobów na zwrócenie poprawnej wartości - najprostsza i najszybsza metoda z komentarzy:
  1. ob_start('ob_gzhandler');
  2. ... output the page content...
  3. ob_end_flush(); // The ob_gzhandler one
  4. header('Content-Length: '.ob_get_length());
  5. ob_end_flush(); // The main one

edit - jeśli jakąś treść generujesz dynamicznie i chcesz ją podliczyć czy coś takiego to też możesz miejscowo używać ob_start

Ten post edytował zegarek84 26.11.2009, 08:32:36


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
korro
post 26.11.2009, 08:31:35
Post #6





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

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


Panowie.
Nie założyłbym wątku przed sprawdzeniem wszystkich w miarę oczywistych rzeczy.
Chciałem mieć pewność.


--------------------
Go to the top of the page
+Quote Post
nospor
post 26.11.2009, 08:37:02
Post #7





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




Cytat
przed sprawdzeniem wszystkich w miarę oczywistych rzeczy.

acha, czyli podstawowa sekcja SEE ALSO i mb_strlen w niej się znajdujący nie jest sprawą oczywistą?


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

"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
korro
post 26.11.2009, 08:41:54
Post #8





Grupa: Zarejestrowani
Postów: 259
Pomógł: 42
Dołączył: 8.04.2005
Skąd: Mława

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


Jeśli na Twoje 'zobacz see also', odpowiadam, że sprawdzałem oczywiste rzeczy, znaczy to dokładnie tyle, że sprawdzałem mb_strlen.


--------------------
Go to the top of the page
+Quote Post
nospor
post 26.11.2009, 08:45:32
Post #9





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




to wybacz nie rozumiem po co zakladales ten wątek, skoro wiedziałeś jak działa strlen() i jak działa mb_strlen()

Jak będziesz chciał się upewnić co zwraca substr('tekst',0,3) to też założysz wątek na forum?
Przenoszę bo dział php to nie miejsce na takie tematy.


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

"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

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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:39