<?php
function test($check) {
$rx = '_^(https?)://([^:/?]+)(?::(\d+))?(?:(/[^?]+))?(?:\?(.*))?$_i';
echo "Test $check\n";
if (!preg_match($rx, $check, $m)) {
echo "\tFAIL!\n";
} else {
var_export($m);
echo "\n";
}
}
test('');
test('http://www.example.com');
test('http://www.example.com:8080');
test('http://www.example.com/some/path');
test('http://www.example.com:8080/some/path');
test('http://www.example.com?queryString');
test('http://www.example.com/some/path?queryString');
test('http://www.example.com:8080/some/path?queryString');
- Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- Test
FAIL!
Test http://www.example.com
array (
0 => 'http://www.example.com',
1 => 'http',
2 => 'www.example.com',
)
Test http://www.example.com:8080
array (
0 => 'http://www.example.com:8080',
1 => 'http',
2 => 'www.example.com',
3 => '8080',
)
Test http://www.example.com/some/path
array (
0 => 'http://www.example.com/some/path',
1 => 'http',
2 => 'www.example.com',
3 => '',
4 => '/some/path',
)
Test http://www.example.com:8080/some/path
array (
0 => 'http://www.example.com:8080/some/path',
1 => 'http',
2 => 'www.example.com',
3 => '8080',
4 => '/some/path',
)
Test http://www.example.com?queryString
array (
0 => 'http://www.example.com?queryString',
1 => 'http',
2 => 'www.example.com',
3 => '',
4 => '',
5 => 'queryString',
)
Test http://www.example.com/some/path?queryString
array (
0 => 'http://www.example.com/some/path?queryString',
1 => 'http',
2 => 'www.example.com',
3 => '',
4 => '/some/path',
5 => 'queryString',
)
Test http://www.example.com:8080/some/path?queryString
array (
0 => 'http://www.example.com:8080/some/path?queryString',
1 => 'http',
2 => 'www.example.com',
3 => '8080',
4 => '/some/path',
5 => 'queryString',
)
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Test
FAIL!
Test http://www.example.com
array (
0 => 'http://www.example.com',
1 => 'http',
2 => 'www.example.com',
)
Test http://www.example.com:8080
array (
0 => 'http://www.example.com:8080',
1 => 'http',
2 => 'www.example.com',
3 => '8080',
)
Test http://www.example.com/some/path
array (
0 => 'http://www.example.com/some/path',
1 => 'http',
2 => 'www.example.com',
3 => '',
4 => '/some/path',
)
Test http://www.example.com:8080/some/path
array (
0 => 'http://www.example.com:8080/some/path',
1 => 'http',
2 => 'www.example.com',
3 => '8080',
4 => '/some/path',
)
Test http://www.example.com?queryString
array (
0 => 'http://www.example.com?queryString',
1 => 'http',
2 => 'www.example.com',
3 => '',
4 => '',
5 => 'queryString',
)
Test http://www.example.com/some/path?queryString
array (
0 => 'http://www.example.com/some/path?queryString',
1 => 'http',
2 => 'www.example.com',
3 => '',
4 => '/some/path',
5 => 'queryString',
)
Test http://www.example.com:8080/some/path?queryString
array (
0 => 'http://www.example.com:8080/some/path?queryString',
1 => 'http',
2 => 'www.example.com',
3 => '8080',
4 => '/some/path',
5 => 'queryString',
)
preferences:
290.92 ms | 405 KiB | 456 Q