PHP:
Znalezienie długości ciągu znaków
Jak to zrobić:
W PHP używamy funkcji strlen() do uzyskania długości łańcucha znaków. Łatwo i szybko:
<?php
$tekst = "Witaj, świecie!";
echo strlen($tekst); // Wyświetli: 15
?>
Zwróć uwagę, że strlen() zwraca długość łańcucha dla jednobajtowych kodowań. Dla Unicode potrzebujemy mb_strlen():
<?php
$tekst = "Cześć";
echo mb_strlen($tekst, 'UTF-8'); // Wyświetli: 5
?>
W głąb tematu
Wcześniejsze wersje PHP nie wspierały wielobajtowych kodowań - to wyzwanie w epoce globalizacji. Standard strlen() zakłada jeden bajt na znak, co jest niewystarczające dla języków używających alfabetów innych niż łaciński. Dlatego pojawiła się funkcja mb_strlen(), która obsługuje Unicode i może liczyć prawidłowo znaki w różnych kodowaniach (na przykład UTF-8).
Alternatywnie, z funkcji iconv_strlen() też można korzystać, by zmierzyć długość łańcucha w określonym kodowaniu.
A co z wydajnością? strlen() jest szybsza, bo działa na prostych, jednobajtowych znakach. mb_strlen() ma do wykonania więcej pracy, ale jest niezbędna, gdy pracujemy z tekstami w wielobajtowych kodowaniach, takich jak UTF-8.
Zobacz również
- Dokumentacja PHP na temat funkcji
strlen(): https://www.php.net/manual/pl/function.strlen.php - Dokumentacja PHP na temat funkcji
mb_strlen(): https://www.php.net/manual/pl/function.mb-strlen.php - Porównanie różnych funkcji liczenia długości łańcuchów znaków: https://www.php.net/manual/pl/ref.mbstring.php
Pamiętaj, że wiedza o kodowaniach tekstów i właściwe ich użycie to podstawa przy pracy z różnorodnymi danymi wejściowymi. Nie lekceważ tego, szczególnie w aplikacjach międzynarodowych!