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()