3v4l.org

run code in 300+ PHP versions simultaneously
<?php function replace_not_entities($search, $replace, $subject) { return preg_replace_callback('/&[^;]+;|(' . preg_quote($search) . ')/', function($match) use($replace) { return isset($match[1]) ? $replace : $match[0]; }, $subject); } print replace_not_entities('um', '__', 'R&auml;ume');

preferences:
61.34 ms | 402 KiB | 5 Q