# La clase Spoofchecker

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

## Introducción

Esta clase se proporciona porque Unicode contiene un gran número de caracteres y incorpora los diversos sistemas de escritura del mundo, y su uso incorrecto puede exponer programas o sistemas a posibles ataques de seguridad mediante la similitud de caracteres.

Los métodos proporcionados permiten verificar si un string individual es susceptible de ser una tentativa de engaño al lector (`detección de engaño`), como en "pаypаl" escrito con un carácter 'а' cirílico.

## Sinopsis de la Clase

class Spoofchecker {
/* Constantes */
public const int SINGLE_SCRIPT_CONFUSABLE;
public const int MIXED_SCRIPT_CONFUSABLE;
public const int WHOLE_SCRIPT_CONFUSABLE;
public const int ANY_CASE;
public const int SINGLE_SCRIPT;
public const int INVISIBLE;
public const int CHAR_LIMIT;
public const int ASCII;
public const int HIGHLY_RESTRICTIVE;
public const int MODERATELY_RESTRICTIVE;
public const int MINIMALLY_RESTRICTIVE;
public const int UNRESTRICTIVE;
public const int SINGLE_SCRIPT_RESTRICTIVE;
public const int MIXED_NUMBERS;
public const int HIDDEN_OVERLAY;
public const int IGNORE_SPACE;
public const int CASE_INSENSITIVE;
public const int ADD_CASE_MAPPINGS;
public const int SIMPLE_CASE_INSENSITIVE;
/* Métodos */
public function __construct()
public function areConfusable(string `$string1`, string `$string2`, int `&$errorCode` = `null`): bool
public function isSuspicious(string `$string`, int `&$errorCode` = `null`): bool
public function setAllowedChars(string `$pattern`, int `$patternOptions` = 0): void
public function setAllowedLocales(string `$locales`): void
public function setChecks(int `$checks`): void
public function setRestrictionLevel(int `$level`): void
}

## Constantes predefinidas

`Spoofchecker::SINGLE_SCRIPT_CONFUSABLE` int

`Spoofchecker::MIXED_SCRIPT_CONFUSABLE` int

`Spoofchecker::WHOLE_SCRIPT_CONFUSABLE` int

`Spoofchecker::ANY_CASE` int

`Spoofchecker::SINGLE_SCRIPT` int

`Spoofchecker::INVISIBLE` int

`Spoofchecker::CHAR_LIMIT` int

`Spoofchecker::ASCII` int

`Spoofchecker::HIGHLY_RESTRICTIVE` int

`Spoofchecker::MODERATELY_RESTRICTIVE` int

`Spoofchecker::MINIMALLY_RESTRICTIVE` int

`Spoofchecker::UNRESTRICTIVE` int

`Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE` int

`Spoofchecker::MIXED_NUMBERS` int

`Spoofchecker::HIDDEN_OVERLAY` int

`Spoofchecker::IGNORE_SPACE` int

`Spoofchecker::CASE_INSENSITIVE` int
  Activa la correspondencia insensible a mayúsculas/minúsculas
`Spoofchecker::ADD_CASE_MAPPINGS` int

  Añade todas las correspondencias de mayúsculas/minúsculas para cada elemento del conjunto

`Spoofchecker::SIMPLE_CASE_INSENSITIVE` int
  Activa la correspondencia insensible a mayúsculas/minúsculas

## Historial de cambios

Versión | Descripción
--- | ---
8.4.0 | Se añadieron `Spoofchecker::IGNORE_SPACE`, `Spoofchecker::CASE_INSENSITIVE`, `Spoofchecker::ADD_CASE_MAPPINGS`, `Spoofchecker::SIMPLE_CASE_INSENSITIVE`.
8.4.0 | Las constantes de clase ahora están tipadas.
7.3.0 | Las constantes de clase utilizadas por Spoofchecker::setRestrictionLevel() como `Spoofchecker::ASCII`, `Spoofchecker::HIGHLY_RESTRICTIVE`, `Spoofchecker::MODERATELY_RESTRICTIVE`, `Spoofchecker::MINIMALLY_RESTRICTIVE`, `Spoofchecker::UNRESTRICTIVE`, `Spoofchecker::SINGLE_SCRIPT_RESTRICTIVE` han sido añadidas.

## Tabla de contenidos

- Spoofchecker::areConfusable — Verifica si los strings dados pueden ser confundidos
- Spoofchecker::__construct — Constructor
- Spoofchecker::isSuspicious — Verifica si un texto contiene caracteres sospechosos
- Spoofchecker::setAllowedChars — Define el conjunto de caracteres permitidos al ejecutar las comprobaciones
- Spoofchecker::setAllowedLocales — Locales a utilizar durante la verificación
- Spoofchecker::setChecks — Especifica las verificaciones a realizar
- Spoofchecker::setRestrictionLevel — Establece el nivel de restricción

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open