3v4l.org

run code in 300+ PHP versions simultaneously
<?php $regex = "#\b(?:(?:[[:alpha:]]+\://)|www\.)(?:(?:[-[:alnum:]]+\.)*[-[:alnum:]]+(?::\d+)?)(?:/(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/]|(?:%[[:xdigit:]]{2}))*)?(?:\?(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?(?:\#(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?#m"; $unicodeRegex = "#\b(?:(?:[[:alpha:]]+\://)|www\.)(?:(?:[-[:alnum:]]+\.)*[-[:alnum:]]+(?::\d+)?)(?:/(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/]|(?:%[[:xdigit:]]{2}))*)?(?:\?(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?(?:\#(?:[[:alnum:]\-\._~\!\$&'\(\)\*\+,;\=\:@/\?]|(?:%[[:xdigit:]]{2}))*)?#um"; $source = '取りhttp://foo.com/somepathによると'; preg_match_all($regex, $source, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); var_dump($matches[0][0][0]); preg_match_all($unicodeRegex, $source, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); var_dump($matches[0][0][0]); var_dump(PCRE_VERSION);
Output for 8.3.0 - 8.3.4, 8.3.6
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.42 2022-12-12"
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 string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.42 2022-12-12"
Output for 8.2.0 - 8.2.18
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.40 2022-04-14"
Output for 8.1.1 - 8.1.28
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.39 2021-10-29"
Output for 8.1.0
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.37 2021-05-26"
Output for 7.4.13 - 7.4.33, 8.0.0 - 8.0.30
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.35 2020-05-09"
Output for 7.4.6
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.34 2019-11-21"
Output for 7.4.0 - 7.4.5
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.33 2019-04-16"
Output for 7.3.18 - 7.3.33
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(16) "10.32 2018-09-10"
Output for 7.2.0 - 7.2.6
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.41 2017-07-05"
Output for 5.5.32 - 5.5.36, 5.6.18 - 5.6.28, 7.0.3 - 7.0.20, 7.1.0 - 7.1.20
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.38 2015-11-23"
Output for 5.4.43 - 5.4.45, 5.5.27 - 5.5.31, 5.6.11 - 5.6.17, 7.0.0 - 7.0.2
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.37 2015-04-28"
Output for 5.4.41 - 5.4.42, 5.5.25 - 5.5.26, 5.6.9 - 5.6.10
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.36 2014-09-26"
Output for 5.5.10 - 5.5.24, 5.6.0 - 5.6.8
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.34 2013-12-15"
Output for 5.3.24 - 5.3.29, 5.4.14 - 5.4.40, 5.5.0 - 5.5.9
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.32 2012-11-30"
Output for 5.3.19 - 5.3.23, 5.4.9 - 5.4.13
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.31 2012-07-06"
Output for 5.3.7 - 5.3.18, 5.4.0 - 5.4.8
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.12 2011-01-15"
Output for 5.3.6
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.11 2010-12-10"
Output for 5.3.4 - 5.3.5
string(23) "http://foo.com/somepath" string(41) "取りhttp://foo.com/somepathによると" string(15) "8.10 2010-06-25"
Output for 5.2.14 - 5.2.17, 5.3.3
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(15) "8.02 2010-03-19"
Output for 5.3.2
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(15) "8.00 2009-10-19"
Output for 5.2.10 - 5.2.13, 5.3.0 - 5.3.1
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.9 2009-04-11"
Output for 5.2.7 - 5.2.9
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.8 2008-09-05"
Output for 5.2.6
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.6 2008-01-28"
Output for 5.2.5
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.3 2007-08-28"
Output for 5.2.4
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" string(14) "7.2 2007-06-19"
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.3
string(23) "http://foo.com/somepath" string(23) "http://foo.com/somepath" Notice: Use of undefined constant PCRE_VERSION - assumed 'PCRE_VERSION' in /in/5dURm on line 14 string(12) "PCRE_VERSION"

preferences:
243.24 ms | 402 KiB | 325 Q