3v4l.org

run code in 300+ PHP versions simultaneously
<?php function mlUtf8FixString($string) { if (false && function_exists('mb_convert_encoding')) { echo "mb_convert_encoding\n"; ini_set('mbstring.substitute_character', "none"); $string = mb_convert_encoding($string, 'UTF-8', 'UTF-8'); } else if (function_exists('iconv')) { echo "iconv\n"; // This might not work due to a bug in php // See: https://bugs.php.net/bug.php?id=48147, https://bugs.php.net/bug.php?id=52211, https://bugs.php.net/bug.php?id=61484 $string = iconv("UTF-8", "UTF-8//IGNORE//TRANSLIT", $string); } return $string; } header('Content-Type: text/plain; charset="UTF-8"'); echo (mlUtf8FixString(' äöüß ነው። ማንም ሰው ይህን መዝገበ ዕውቀት ကျွန်း​စု​မြို့​နယ်၊ တနင်္သာရီ​မြို့​နယ်၊ សព្វវចនាធិប្បាយសេរីសម្រាប់អ្នកទាំងអស់គ្នា។ ຈະຊອກຫາອີ່ຫຍັງອັນໃດກໍບໍ່ຄ່ອຍມີ Mỹ đưa quân tăng viện đến արկածային գրականության դասական История проектирования არასოდეს დაუტოვებიათ ᑐᙵᓱᒃᑐᐃᓐᓇᐅᓕᑦᑎ ᐅᐃᑭᐅᖃᓕᒫᒐᕐᔪᐊᖕᒧᑦ ᐃᓄᒃᑎᑐᓐ Πρωταγωνίστησε σε πολλές આ ઉપરાંત વિકિપીડિયામાં અત્યારે અનેક લેખો તૈયાર ཝེ་ཁེ་རིག་མཛོད་ནི་རང་དབང་གི་རིག་གནས་ཀུན་བཏུས་དཔེ་མཛོད་ཅིག་ཡིན་ལ་ विकिपीडिया सभी विषयों पर प्रामाणिक और 이후로, 토론토 지하철은 현재 位久经苦难的黑奴汤姆叔叔的故事展开 مرحبا بكم في ويكيبيديا بخط الثلث איינשטעלן א סיסטעם אין וועלכע פראפערט ဖြစ်ပေါ်​နေ​သည့် မြေနိမ့်​ချိုမ့်​ဝှမ်း​များ​၌ ပေါက်ရောက်​သည့် পৰা ১০ম শতিকাৰ ভিতৰত বিকাশ হোৱা A broken utf sequence: ['."\xEB\x6C\x65\x20".'] '));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/dmMtl
function name:  (null)
number of ops:  8
compiled vars:  none
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   17     0  E >   INIT_FCALL                                               'header'
          1        SEND_VAL                                                 'Content-Type%3A+text%2Fplain%3B+charset%3D%22UTF-8%22'
          2        DO_ICALL                                                 
   18     3        INIT_FCALL                                               'mlutf8fixstring'
   41     4        SEND_VAL                                                 '%0A%C3%A4%C3%B6%C3%BC%C3%9F%0A%E1%8A%90%E1%8B%8D%E1%8D%A2+%E1%88%9B%E1%8A%95%E1%88%9D+%E1%88%B0%E1%8B%8D+%E1%8B%AD%E1%88%85%E1%8A%95+%E1%88%98%E1%8B%9D%E1%8C%88%E1%89%A0+%E1%8B%95%E1%8B%8D%E1%89%80%E1%89%B5%0A%E1%80%80%E1%80%BB%E1%80%BD%E1%80%94%E1%80%BA%E1%80%B8%E2%80%8B%E1%80%85%E1%80%AF%E2%80%8B%E1%80%99%E1%80%BC%E1%80%AD%E1%80%AF%E1%80%B7%E2%80%8B%E1%80%94%E1%80%9A%E1%80%BA%E1%81%8A+%E1%80%90%E1%80%94%E1%80%84%E1%80%BA%E1%80%B9%E1%80%9E%E1%80%AC%E1%80%9B%E1%80%AE%E2%80%8B%E1%80%99%E1%80%BC%E1%80%AD%E1%80%AF%E1%80%B7%E2%80%8B%E1%80%94%E1%80%9A%E1%80%BA%E1%81%8A%0A%E1%9E%9F%E1%9E%96%E1%9F%92%E1%9E%9C%E1%9E%9C%E1%9E%85%E1%9E%93%E1%9E%B6%E1%9E%92%E1%9E%B7%E1%9E%94%E1%9F%92%E1%9E%94%E1%9E%B6%E1%9E%99%E1%9E%9F%E1%9F%81%E1%9E%9A%E1%9E%B8%E1%9E%9F%E1%9E%98%E1%9F%92%E1%9E%9A%E1%9E%B6%E1%9E%94%E1%9F%8B%E1%9E%A2%E1%9F%92%E1%9E%93%E1%9E%80%E1%9E%91%E1%9E%B6%E1%9F%86%E1%9E%84%E1%9E%A2%E1%9E%9F%E1%9F%8B%E1%9E%82%E1%9F%92%E1%9E%93%E1%9E%B6%E1%9F%94%0A%E0%BA%88%E0%BA%B0%E0%BA%8A%E0%BA%AD%E0%BA%81%E0%BA%AB%E0%BA%B2%E0%BA%AD%E0%BA%B5%E0%BB%88%E0%BA%AB%E0%BA%8D%E0%BA%B1%E0%BA%87%E0%BA%AD%E0%BA%B1%E0%BA%99%E0%BB%83%E0%BA%94%E0%BA%81%E0%BB%8D%E0%BA%9A%E0%BB%8D%E0%BB%88%E0%BA%84%E0%BB%88%E0%BA%AD%E0%BA%8D%E0%BA%A1%E0%BA%B5%0AM%E1%BB%B9+%C4%91%C6%B0a+qu%C3%A2n+t%C4%83ng+vi%E1%BB%87n+%C4%91%E1%BA%BFn%0A%D5%A1%D6%80%D5%AF%D5%A1%D5%AE%D5%A1%D5%B5%D5%AB%D5%B6+%D5%A3%D6%80%D5%A1%D5%AF%D5%A1%D5%B6%D5%B8%D6%82%D5%A9%D5%B5%D5%A1%D5%B6+%D5%A4%D5%A1%D5%BD%D5%A1%D5%AF%D5%A1%D5%B6%0A%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F+%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%0A%E1%83%90%E1%83%A0%E1%83%90%E1%83%A1%E1%83%9D%E1%83%93%E1%83%94%E1%83%A1+%E1%83%93%E1%83%90%E1%83%A3%E1%83%A2%E1%83%9D%E1%83%95%E1%83%94%E1%83%91%E1%83%98%E1%83%90%E1%83%97%0A%E1%91%90%E1%99%B5%E1%93%B1%E1%92%83%E1%91%90%E1%90%83%E1%93%90%E1%93%87%E1%90%85%E1%93%95%E1%91%A6%E1%91%8E+%E1%90%85%E1%90%83%E1%91%AD%E1%90%85%E1%96%83%E1%93%95%E1%92%AB%E1%92%90%E1%95%90%E1%94%AA%E1%90%8A%E1%96%95%E1%92%A7%E1%91%A6+%E1%90%83%E1%93%84%E1%92%83%E1%91%8E%E1%91%90%E1%93%90%0A%CE%A0%CF%81%CF%89%CF%84%CE%B1%CE%B3%CF%89%CE%BD%CE%AF%CF%83%CF%84%CE%B7%CF%83%CE%B5+%CF%83%CE%B5+%CF%80%CE%BF%CE%BB%CE%BB%CE%AD%CF%82%0A%E0%AA%86+%E0%AA%89%E0%AA%AA%E0%AA%B0%E0%AA%BE%E0%AA%82%E0%AA%A4+%E0%AA%B5%E0%AA%BF%E0%AA%95%E0%AA%BF%E0%AA%AA%E0%AB%80%E0%AA%A1%E0%AA%BF%E0%AA%AF%E0%AA%BE%E0%AA%AE%E0%AA%BE%E0%AA%82+%E0%AA%85%E0%AA%A4%E0%AB%8D%E0%AA%AF%E0%AA%BE%E0%AA%B0%E0%AB%87+%E0%AA%85%E0%AA%A8%E0%AB%87%E0%AA%95+%E0%AA%B2%E0%AB%87%E0%AA%96%E0%AB%8B+%E0%AA%A4%E0%AB%88%E0%AA%AF%E0%AA%BE%E0%AA%B0%0A%E0%BD%9D%E0%BD%BA%E0%BC%8B%E0%BD%81%E0%BD%BA%E0%BC%8B%E0%BD%A2%E0%BD%B2%E0%BD%82%E0%BC%8B%E0%BD%98%E0%BD%9B%E0%BD%BC%E0%BD%91%E0%BC%8B%E0%BD%93%E0%BD%B2%E0%BC%8B%E0%BD%A2%E0%BD%84%E0%BC%8B%E0%BD%91%E0%BD%96%E0%BD%84%E0%BC%8B%E0%BD%82%E0%BD%B2%E0%BC%8B%E0%BD%A2%E0%BD%B2%E0%BD%82%E0%BC%8B%E0%BD%82%E0%BD%93%E0%BD%A6%E0%BC%8B%E0%BD%80%E0%BD%B4%E0%BD%93%E0%BC%8B%E0%BD%96%E0%BD%8F%E0%BD%B4%E0%BD%A6%E0%BC%8B%E0%BD%91%E0%BD%94%E0%BD%BA%E0%BC%8B%E0%BD%98%E0%BD%9B%E0%BD%BC%E0%BD%91%E0%BC%8B%E0%BD%85%E0%BD%B2%E0%BD%82%E0%BC%8B%E0%BD%A1%E0%BD%B2%E0%BD%93%E0%BC%8B%E0%BD%A3%E0%BC%8B%0A%E0%A4%B5%E0%A4%BF%E0%A4%95%E0%A4%BF%E0%A4%AA%E0%A5%80%E0%A4%A1%E0%A4%BF%E0%A4%AF%E0%A4%BE+%E0%A4%B8%E0%A4%AD%E0%A5%80+%E0%A4%B5%E0%A4%BF%E0%A4%B7%E0%A4%AF%E0%A5%8B%E0%A4%82+%E0%A4%AA%E0%A4%B0+%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AE%E0%A4%BE%E0%A4%A3%E0%A4%BF%E0%A4%95+%E0%A4%94%E0%A4%B0%0A%EC%9D%B4%ED%9B%84%EB%A1%9C%2C+%ED%86%A0%EB%A1%A0%ED%86%A0+%EC%A7%80%ED%95%98%EC%B2%A0%EC%9D%80+%ED%98%84%EC%9E%AC%0A%E4%BD%8D%E4%B9%85%E7%BB%8F%E8%8B%A6%E9%9A%BE%E7%9A%84%E9%BB%91%E5%A5%B4%E6%B1%A4%E5%A7%86%E5%8F%94%E5%8F%94%E7%9A%84%E6%95%85%E4%BA%8B%E5%B1%95%E5%BC%80%0A%D9%85%D8%B1%D8%AD%D8%A8%D8%A7+%D8%A8%D9%83%D9%85+%D9%81%D9%8A+%D9%88%D9%8A%D9%83%D9%8A%D8%A8%D9%8A%D8%AF%D9%8A%D8%A7+%D8%A8%D8%AE%D8%B7+%D8%A7%D9%84%D8%AB%D9%84%D8%AB%0A%D7%90%D7%99%D7%99%D7%A0%D7%A9%D7%98%D7%A2%D7%9C%D7%9F+%D7%90+%D7%A1%D7%99%D7%A1%D7%98%D7%A2%D7%9D+%D7%90%D7%99%D7%9F+%D7%95%D7%95%D7%A2%D7%9C%D7%9B%D7%A2+%D7%A4%D7%A8%D7%90%D7%A4%D7%A2%D7%A8%D7%98%0A%E1%80%96%E1%80%BC%E1%80%85%E1%80%BA%E1%80%95%E1%80%B1%E1%80%AB%E1%80%BA%E2%80%8B%E1%80%94%E1%80%B1%E2%80%8B%E1%80%9E%E1%80%8A%E1%80%B7%E1%80%BA+%E1%80%99%E1%80%BC%E1%80%B1%E1%80%94%E1%80%AD%E1%80%99%E1%80%B7%E1%80%BA%E2%80%8B%E1%80%81%E1%80%BB%E1%80%AD%E1%80%AF%E1%80%99%E1%80%B7%E1%80%BA%E2%80%8B%E1%80%9D%E1%80%BE%E1%80%99%E1%80%BA%E1%80%B8%E2%80%8B%E1%80%99%E1%80%BB%E1%80%AC%E1%80%B8%E2%80%8B%E1%81%8C+%E1%80%95%E1%80%B1%E1%80%AB%E1%80%80%E1%80%BA%E1%80%9B%E1%80%B1%E1%80%AC%E1%80%80%E1%80%BA%E2%80%8B%E1%80%9E%E1%80%8A%E1%80%B7%E1%80%BA%0A%E0%A6%AA%E0%A7%B0%E0%A6%BE+%E0%A7%A7%E0%A7%A6%E0%A6%AE+%E0%A6%B6%E0%A6%A4%E0%A6%BF%E0%A6%95%E0%A6%BE%E0%A7%B0+%E0%A6%AD%E0%A6%BF%E0%A6%A4%E0%A7%B0%E0%A6%A4+%E0%A6%AC%E0%A6%BF%E0%A6%95%E0%A6%BE%E0%A6%B6+%E0%A6%B9%E0%A7%8B%E0%A7%B1%E0%A6%BE%0A%0AA+broken+utf+sequence%3A%0A%5B%EBle+%5D%0A'
          5        DO_FCALL                                      0  $1      
          6        ECHO                                                     $1
   42     7      > RETURN                                                   1

Function mlutf8fixstring:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 2, Position 2 = 14
Branch analysis from position: 2
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 25
Branch analysis from position: 18
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
filename:       /in/dmMtl
function name:  mlUtf8FixString
number of ops:  27
compiled vars:  !0 = $string
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    4     1      > JMPZ                                                     <false>, ->14
    5     2    >   ECHO                                                     'mb_convert_encoding%0A'
    6     3        INIT_FCALL                                               'ini_set'
          4        SEND_VAL                                                 'mbstring.substitute_character'
          5        SEND_VAL                                                 'none'
          6        DO_ICALL                                                 
    7     7        INIT_FCALL                                               'mb_convert_encoding'
          8        SEND_VAR                                                 !0
          9        SEND_VAL                                                 'UTF-8'
         10        SEND_VAL                                                 'UTF-8'
         11        DO_ICALL                                         $2      
         12        ASSIGN                                                   !0, $2
         13      > JMP                                                      ->25
    8    14    >   INIT_FCALL                                               'function_exists'
         15        SEND_VAL                                                 'iconv'
         16        DO_ICALL                                         $4      
         17      > JMPZ                                                     $4, ->25
    9    18    >   ECHO                                                     'iconv%0A'
   12    19        INIT_FCALL_BY_NAME                                       'iconv'
         20        SEND_VAL_EX                                              'UTF-8'
         21        SEND_VAL_EX                                              'UTF-8%2F%2FIGNORE%2F%2FTRANSLIT'
         22        SEND_VAR_EX                                              !0
         23        DO_FCALL                                      0  $5      
         24        ASSIGN                                                   !0, $5
   14    25    > > RETURN                                                   !0
   15    26*     > RETURN                                                   null

End of function mlutf8fixstring

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
185.71 ms | 1398 KiB | 25 Q