3v4l.org

run code in 300+ PHP versions simultaneously
<?php function splitOn($needle, $subject) { $needle = preg_quote($needle, '/'); $pattern = '/(?<!\x5c)(?:\x5c.)*\K' . $needle . '/s'; return preg_split($pattern, $subject); } $rules = 'trim:-,left|replace:[0-9]\|[\,a-z],3|int'; $rules = splitOn('|', $rules); $rules = array_map(function($rule) { [$rule, $arguments] = explode(':', $rule, 1); $arguments = splitOn(',', $arguments); return [$rule, $arguments]; }, $rules); var_dump($rules);

preferences:
48.84 ms | 402 KiB | 5 Q