ctype_punct în PHP

Verifică dacă un text conține doar semne de punctuație și simboluri (caractere vizibile care nu sunt litere sau cifre).

Sintaxă
ctype_punct(mixed $text): bool

Ce face ctype_punct

ctype_punct returnează true dacă fiecare caracter este vizibil, dar nu este literă, cifră sau spațiu: ! ? . , ; : - _ @ # $ % și altele din ASCII.

Spațiile fac rezultatul false, la fel un text gol. Semnele din afara ASCII („ ” …) nu sunt recunoscute.

Parametri

Parametru Descriere
$text Textul verificat.

Ce returnează

true dacă textul nu este gol și are doar semne de punctuație.

Exemple

Exemplul 1: Ce este acceptat

<?php
foreach (["!?.", "@#$%", "!? ", "a!", "„…”"] as $text) {
    echo "'$text' => " . var_export(ctype_punct($text), true) . "\n";
}

Rezultat

'!?.' => true
'@#$%' => true
'!? ' => false
'a!' => false
'„…”' => false

Exemplul 2: Comentarii formate doar din semne

<?php
$comentariu = "!!!???";

if (ctype_punct(str_replace(" ", "", $comentariu))) {
    echo "Comentariul nu conține text.";
}

Rezultat

Comentariul nu conține text.

Greșeli frecvente

  • Verifici o parolă cu ctype_punct ca să afli dacă „are un simbol”. Funcția cere ca toate caracterele să fie simboluri; folosește preg_match('/[[:punct:]]/', $parola).

Comenzi înrudite

  • ctype_alnum: Verifică dacă un text conține doar litere și cifre, fără spații sau alte semne.
  • ctype_print / ctype_graph: ctype_print verifică dacă un text are doar caractere afișabile (inclusiv spații); ctype_graph la fel, dar fără spații.
  • preg_match: Verifică dacă un text se potrivește cu o expresie regulată și extrage prima potrivire.