Diskuze: PHP jak jednoduše spočítat počet písmen/číslic
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Jak to myslíš elegentní? Napadá mě asi jen mb_strlen, který by ti měl
ošetřit unicode znaky...
Můžeš to dělat pomocí regulárního výrazu.
<?php
mb_internal_encoding("UTF-8");
$textOdUzivatele = '***-§**)b#%(*&^$#464822jnhgi###';
$delkaTextu = mb_strlen($textOdUzivatele) - mb_strlen(preg_replace('/[A-Za-z0-9]/', '', $textOdUzivatele));
echo($delkaTextu);
?>
Výstup:
12
Pěkné řešení, místo abys filtroval co tam nechceš (a všechny abecedy světa bych filtrovat fakt nechtěl) tak odstraníš co potřebuješ a rozdíl je poté počet znaků, které si odstranil (tedy ty, které počítáš). Jen pro osvětlení.
Nebo odstranit všechny znaky vyjma znaku slova.
mb_internal_encoding("UTF-8");
$text_od_uzivatele = '***-§**)b#%(*&^$#464822jnhgi###';
$delka_textu = mb_strlen(preg_replace('~[^\\w]~Uis','',$text_od_uzivatele));
echo $delka_textu;
No jo mohl jsem to jednoduše znegovat a smazat jen ty ostatní znaky a
nemusel jsem dělat tu šaškárnu s odčítáním znaků.
A proto tu jsme a dáváme hlavy dohromady. Nevydět tvůj regulární
výraz, tak bych nejspíš ani nereagoval. Nicméně tvůj regex by
vynechával háčky a čárky.
Zobrazeno 7 zpráv z 7.