3v4l.org

run code in 300+ PHP versions simultaneously
<?php $text = 'Here are @user:123 and @user:456 mentions'; $contextSize = 5; $pattern = '~ @user:[0-9]+ \s* (*:mention) | \S+ \s* ~x'; $results = []; if (preg_match_all($pattern, $text, $matches)) { foreach ($matches['MARK'] as $k => $v) { $beforeIndex = max(0, $k - $contextSize); $beforeSize = $k - $beforeIndex; $afterIndex = $k + 1; $results[] = [ 'before' => join(array_slice($matches[0], $beforeIndex, $beforeSize)), 'mention' => $matches[0][$k], 'after' => join(array_slice($matches[0], $afterIndex, $contextSize)) ]; } } print_r($results);
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.28, 8.4.1 - 8.4.14, 8.5.0
Array ( [0] => Array ( [before] => Here are [mention] => @user:123 [after] => and @user:456 mentions ) [1] => Array ( [before] => Here are @user:123 and [mention] => @user:456 [after] => mentions ) )
Output for 8.4.15
/bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libm.so.6: version `GLIBC_2.35' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.34' not found (required by /bin/php-8.4.15) /bin/php-8.4.15: /usr/lib/libc.so.6: version `GLIBC_2.38' not found (required by /bin/php-8.4.15)
Process exited with code 1.

preferences:
94.43 ms | 407 KiB | 5 Q