ctype_print / ctype_graph în PHP

ctype_print verifică dacă un text are doar caractere afișabile (inclusiv spații); ctype_graph la fel, dar fără spații.

Sintaxă
ctype_print(mixed $text): bool

Ce face ctype_print / ctype_graph

ctype_print returnează true dacă toate caracterele sunt afișabile: litere, cifre, semne de punctuație și spațiul. Liniile noi, tab-urile și alte caractere de control fac rezultatul false.

ctype_graph este identică, cu o singură diferență: nu acceptă nici spațiul. Ambele lucrează cu ASCII, deci literele cu diacritice dau false, iar un text gol dă false.

Parametri

Parametru Descriere
$text Textul verificat.

Ce returnează

true sau false.

Exemple

Exemplul 1: Diferența dintre cele două

<?php
foreach (["Ana are 3 mere!", "Ana!", "linie\nnouă", "Iași"] as $text) {
    echo json_encode($text, JSON_UNESCAPED_UNICODE) . ": print = " . var_export(ctype_print($text), true)
        . ", graph = " . var_export(ctype_graph($text), true) . "\n";
}

Rezultat

"Ana are 3 mere!": print = true, graph = false
"Ana!": print = true, graph = true
"linie\nnouă": print = false, graph = false
"Iași": print = false, graph = false

Exemplul 2: Cheie de API fără spații sau caractere ascunse

<?php
$cheie = "sk_live_51H8x9\n";

if (!ctype_graph($cheie)) {
    echo "Cheia conține spații sau caractere invizibile. Ai copiat și linia nouă?";
}

Rezultat

Cheia conține spații sau caractere invizibile. Ai copiat și linia nouă?

Greșeli frecvente

  • Validezi texte în română cu ctype_print și literele cu diacritice sunt respinse. Pentru UTF-8 folosește preg_match('/^[\P{C}]+$/u', $text).

Comenzi înrudite

  • ctype_cntrl: Verifică dacă un text conține doar caractere de control: tab, linie nouă, retur de car și alte coduri invizibile.
  • ctype_punct: Verifică dacă un text conține doar semne de punctuație și simboluri (caractere vizibile care nu sunt litere sau cifre).
  • ctype_space: Verifică dacă un text conține doar spații albe: spațiu, tab, linie nouă.