3v4l.org

run code in 300+ PHP versions simultaneously
<?php $bom = "\xef\xbb\xbf"; $json_string = $bom.'{"greeting":"Tschüss welt","emoji":"😃"}'; var_dump( $json_string, preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true) ); // removing the BOM sequence only and from the very beginning only $json_string = preg_replace("/^\xEF\xBB\xBF/", '', $json_string); var_dump( $json_string, json_decode($json_string, true) );
Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
string(46) "{"greeting":"Tschüss welt","emoji":"😃"}" string(37) "{"greeting":"Tschss welt","emoji":""}" array(2) { ["greeting"]=> string(11) "Tschss welt" ["emoji"]=> string(0) "" } string(43) "{"greeting":"Tschüss welt","emoji":"😃"}" array(2) { ["greeting"]=> string(13) "Tschüss welt" ["emoji"]=> string(4) "😃" }

preferences:
54.87 ms | 407 KiB | 5 Q