3v4l.org

run code in 300+ PHP versions simultaneously
<?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');
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
First segment: invalid Second segment: valid Third segment: valid

preferences:
62.29 ms | 406 KiB | 5 Q