Numeric Types #
Arithmetic #
Evaluates mathematical expressions in text fields (e.g., "2+2" → 4).
$result = Parser::sanitize('10 + 5 * 2', 'arithmetic');
// Returns: 20
Int #
Integer values only.
$age = Parser::sanitize('25.7', 'int');
// Returns: 25
$negative = Parser::sanitize('-100', 'int');
// Returns: -100
Float #
Floating-point numbers.
$price = Parser::sanitize('19.99', 'float');
// Returns: 19.99
$scientific = Parser::sanitize('1.5e3', 'float');
// Returns: 1500.0
String Types #
String #
General text with sanitization.
$text = Parser::sanitize('<script>alert("xss")</script>', 'string');
// Returns: sanitized string (no HTML)
$limited = Parser::sanitize('Very long text...', 'string', ['maxLength' => 50]);
// Returns: truncated to 50 chars
Name #
Human names (letters, spaces, hyphens, apostrophes).
$name = Parser::sanitize("Jean-François O'Brien", 'name');
// Returns: "Jean-François O'Brien"
$invalid = Parser::sanitize("John123", 'name');
// Returns: "John" (numbers stripped)
Html #
HTML content (preserves safe tags).
$content = Parser::sanitize('<p>Hello <b>world</b></p>', 'html');
// Returns: allowed tags preserved, dangerous ones stripped
Xml #
XML-safe content.
$xml = Parser::sanitize('<tag attr="value">Text & symbols</tag>', 'xml');
// Returns: properly escaped XML
Network Types #
Email #
Email addresses.
$email = Parser::sanitize(' USER@EXAMPLE.COM ', 'email');
// Returns: "user@example.com" (trimmed, lowercased)
if (Parser::check($email, 'email')) {
// Valid email format
}
Url #
URLs and URIs.
$url = Parser::sanitize('https://example.com/path?query=value', 'url');
// Returns: validated URL
$cleaned = Parser::sanitize('javascript:alert(1)', 'url');
// Returns: false (dangerous protocol)
Ip #
IPv4 and IPv6 addresses.
$ip = Parser::sanitize('192.168.1.1', 'ip');
// Returns: "192.168.1.1"
$ipv6 = Parser::sanitize('2001:0db8::1', 'ip');
// Returns: valid IPv6
File System Types #
Path #
File paths (prevents directory traversal).
$path = Parser::sanitize('uploads/file.jpg', 'path');
// Returns: "uploads/file.jpg"
$malicious = Parser::sanitize('../../../etc/passwd', 'path');
// Returns: false (traversal blocked)
Specialized Types #
Date #
Date and datetime values.
$date = Parser::sanitize('2025.12.29', 'date');
// Returns: validated date
$datetime = Parser::sanitize('2025.12.29 14:30:00', 'date');
// Returns: valid datetime
Bool #
Boolean values.
$bool = Parser::sanitize('true', 'bool');
// Returns: true
$zero = Parser::sanitize('0', 'bool');
// Returns: false
Uuid #
Universally Unique Identifiers (v4).
$uuid = Parser::sanitize('550e8400-e29b-41d4-a716-446655440000', 'uuid');
// Returns: valid UUID
if (Parser::check($input, 'uuid')) {
// Valid UUID format
}
Ldapuser #
LDAP usernames.
$ldap = Parser::sanitize('john.doe', 'ldapuser');
// Returns: LDAP-safe username
Phpsession #
PHP session IDs.
$session = Parser::sanitize($_COOKIE['PHPSESSID'], 'phpsession');
// Returns: validated session ID
Special Types #
Null #
Ensures null values.
$null = Parser::sanitize('', 'null');
// Returns: null
$nonNull = Parser::sanitize('value', 'null');
// Returns: false
Encoding #
Validates UTF-8 encoding.
$text = Parser::sanitize($input, 'encoding');
// Returns: UTF-8 validated text
Dummy #
Pass-through type (for custom validation).
$raw = Parser::sanitize($data, 'dummy');
// Returns: data as-is (no sanitization)