Ce face strspn / strcspn
strspn pornește de la începutul textului și numără caracterele cât timp fiecare se află în lista $characters. Se oprește la primul caracter care nu e în listă.
strcspn face inversul: numără caracterele până la primul care este în listă. Practic, îți dă poziția primului caracter din listă (sau lungimea textului, dacă nu apare niciunul).
Ambele acceptă $offset și $length ca să lucreze doar pe o porțiune. Lucrează pe octeți.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Textul analizat. |
$characters |
Lista de caractere (fiecare caracter contează separat, ordinea nu contează). |
$offset |
Opțional. Poziția de la care începe numărarea. |
$length |
Opțional. Lungimea porțiunii analizate. |
Ce returnează
Numărul de caractere numărate.
Exemple
Exemplul 1: Cifrele de la începutul unui text
<?php
$text = "2026-10-19 Lansare";
echo strspn($text, "0123456789") . "\n";
echo strspn($text, "0123456789-");
Rezultat
4
10
Exemplul 2: Poziția primului caracter interzis cu strcspn
<?php
$utilizator = "ana_popescu!2026";
$pozitie = strcspn($utilizator, "!@#$%^&* ");
echo "Partea validă: " . substr($utilizator, 0, $pozitie) . "\n";
echo strcspn("fără spații", " ") . " / " . strcspn("faraspatii", " ");
Rezultat
Partea validă: ana_popescu
6 / 10
Greșeli frecvente
- Crezi că
$characterseste un cuvânt căutat. Este o listă de caractere individuale:"abc"înseamnă „a, b sau c”.
Comenzi înrudite
strpbrk: Returnează textul începând cu primul caracter care apare într-o listă dată.ctype_digit: Verifică dacă un text conține doar cifre (0-9).strpos: Găsește poziția primei apariții a unui text în alt text.