Rileva se stringa è binario - php

Come posso determinare se una stringa contiene caratteri non stampabili / sono probabili dati binari?

Questo è per unità di test / debug - non ha bisogno di essere esatto.

risposte:

2 per risposta № 1

Questo dovrà fare.

function isBinary($str) {
return preg_match("~[^x20-x7Etrn]~", $str) > 0;
}

0 per risposta № 2

Per cercare caratteri non stampabili, puoi usare ctype_print (http://php.net/manual/en/function.ctype-print.php).


0 per risposta № 3

Provate una regex replace, sostituendo "[: print:]" con "", e se il risultato è "" allora contiene solo caratteri stampabili, altrimenti contiene anche caratteri non stampabili.


0 per risposta № 4

Una soluzione hacky (che ho visto abbastanza spesso) sarebbe stata la ricerca di NUL caratteri.

if (strpos($string, "")===FALSE) echo "not binary";

Un approccio più sofisticato sarebbe quello di verificare se la stringa contiene unicode valido.


Menu