ctype_punct
ctype_punct($text)
Zwraca true, jeśli ciąg zawiera tylko znaki interpunkcyjne, czyli znaki drukowalne, które nie są literą, cyfrą ani spacją. W domyślnych ustawieniach regionalnych to znaki ASCII !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~.
Parametry
- $text – sprawdzany ciąg.
Przykłady
var_dump(ctype_punct("!?.,")); // bool(true)
var_dump(ctype_punct('-_@#$%')); // bool(true)
// spacja nie jest znakiem interpunkcyjnym
var_dump(ctype_punct("!? ")); // bool(false)
var_dump(ctype_punct("a!")); // bool(false)
var_dump(ctype_punct("")); // bool(false)
// polskie cudzysłowy i półpauza w UTF-8 nie przejdą
var_dump(ctype_punct("„”–")); // bool(false)
// hasło musi zawierać co najmniej jeden znak specjalny
var_dump(preg_match('/[[:punct:]]/', "Tajne-Haslo2026") === 1); // bool(true)
Na co uważać
- Funkcja sprawdza cały ciąg. Czy ciąg zawiera jakikolwiek znak specjalny, powie wyrażenie regularne z klasą [[:punct:]] jak w ostatnim przykładzie.
- Znaki typograficzne w UTF-8 (polskie cudzysłowy, półpauza –, wielokropek …) nie przejdą.
- Wynik zależy od ustawień regionalnych (LC_CTYPE). Opis powyżej dotyczy domyślnych ustawień C.
- Przekazuj ciąg znaków. Przekazanie liczby jest od PHP 8.1 przestarzałe.
Powiązane funkcje:
ctype_print()
ctype_alnum()
ctype_space()
preg_match()