3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $result = preg_replace( '#\/_([a-z]+\/)\g#', '/$1$1', '/_ticket/_show/xxx' ); var_dump( $result ); exit; $found = null; $route = '/_ticket/'; foreach ( explode( '/', trim( $route, '/' ) ) as $part => $r ) { $uscore = strpos( $r, '_' ); $times = substr_count( $r, '_' ); if ( 1 != $times || 0 != $uscore ) { continue; } $found = $part; break; } if ( null !== $found ) { $parts = explode( '/', trim( $route, '/' ) ); $before = array_slice( $parts, 0, $found, true ); $after = array_slice( $parts, $found + 1, null, true ); $replacePart = ltrim( $parts[ $found ], '_' ); $before[] = $replacePart; $before[] = $replacePart; foreach ( $after as $part ) { $before[] = $part; } }
Output for 4.4.9, 5.2.7 - 5.6.26, 7.0.0 - 7.1.0
Warning: preg_replace(): Compilation failed: a numbered reference must not be zero at offset 14 in /in/UfpuG on line 2 NULL
Output for hhvm-3.10.0 - 3.13.2
Warning: Compilation failed: a numbered reference must not be zero at offset 14 in /in/UfpuG on line 2 NULL
Output for 5.2.5 - 5.2.6
Warning: preg_replace(): Compilation failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 14 in /in/UfpuG on line 2 NULL
Output for 5.2.4
Warning: preg_replace(): Compilation failed: \g is not followed by a braced name or an optionally braced non-zero number at offset 13 in /in/UfpuG on line 2 NULL
Output for 4.4.6 - 4.4.8, 5.2.2 - 5.2.3
Warning: preg_replace(): Compilation failed: \g is not followed by an (optionally braced) non-zero number at offset 13 in /in/UfpuG on line 2 NULL
Output for 4.3.0 - 4.4.5, 5.0.0 - 5.2.1
string(18) "/_ticket/_show/xxx"