- ctype_alnum: documentation ( source)
- preg_match: documentation ( source)
<?php
$first = ".";
$last = "a";
$middle= "testing-123.test";
echo "First segment:\t" . (ctype_alnum($first) ? 'valid' : 'invalid') . "\n";
echo "Second segment:\t" . (preg_match("/^[a-z\d.-]+$/i", $middle) ? 'valid' : 'invalid') . "\n";
echo "Third segment:\t" . (ctype_alnum($last) ? 'valid' : 'invalid');