3v4l.org

run code in 300+ PHP versions simultaneously
<?php function stripNonValidCharaters ($message) { $message = mb_convert_encoding($message, 'UTF-16', 'UTF-8'); $count = 0; //mostly taken from https://dynmark.uservoice.com/knowledgebase/articles/83496-gsm-alphabet-character-set $search = [ '`', '‘', '’', '’' //single quotes '“', '”', //double quotes '~', '¬', '|', //misc chr(0xc2a0) //nbsp character ]; $replace = [ "'", "'", "'", "'", //single quotes '"', '"', //double quotes '-', '-', 'I', //misc " " //space ]; $message = str_replace($search, $replace, $message, $count); $message = trim($message); return ['message' => $message, 'replacements' => $count]; } $message = "We can’t wait to see you at our Open Day next week. We’ve sent you an email with all the info you need. If you’ve not received it please call 01252 892883"; var_dump(stripNonValidCharaters($message));

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
5.4.350.0150.08212.04
5.4.340.0140.06312.03
5.4.320.0080.05812.52
5.4.310.0110.05712.52
5.4.300.0110.05912.52
5.4.290.0120.08612.51
5.4.280.0090.04612.41
5.4.270.0110.04712.41
5.4.260.0060.03912.41
5.4.250.0090.03512.41
5.4.240.0080.03412.41
5.4.230.0060.03812.40
5.4.220.0040.04112.40
5.4.210.0060.05112.40
5.4.200.0060.05212.40
5.4.190.0100.04212.40
5.4.180.0070.04412.39
5.4.170.0120.03312.40
5.4.160.0030.04312.40
5.4.150.0100.03812.39
5.4.140.0030.04312.09
5.4.130.0100.03812.07
5.4.120.0050.04912.03
5.4.110.0060.05212.04
5.4.100.0110.04512.03
5.4.90.0100.05012.03
5.4.80.0080.03812.04
5.4.70.0060.04512.02
5.4.60.0080.04812.02
5.4.50.0110.04512.02
5.4.40.0100.04612.01
5.4.30.0080.04912.01
5.4.20.0090.04812.00
5.4.10.0080.04812.01
5.4.00.0080.04911.50
5.3.290.0090.05412.80
5.3.280.0170.04312.71
5.3.270.0100.05312.72
5.3.260.0140.04912.72
5.3.250.0130.04912.72
5.3.240.0080.05412.72
5.3.230.0110.04912.71
5.3.220.0120.04412.68
5.3.210.0140.04612.68
5.3.200.0120.04812.68
5.3.190.0110.04812.68
5.3.180.0090.05412.68
5.3.170.0110.05112.67
5.3.160.0070.05212.67
5.3.150.0090.04812.67
5.3.140.0100.05812.66
5.3.130.0100.04912.66
5.3.120.0090.06712.66
5.3.110.0050.05312.66
5.3.100.0120.05412.13
5.3.90.0140.05212.11
5.3.80.0120.05012.10
5.3.70.0130.04612.09
5.3.60.0110.04912.08
5.3.50.0110.04812.02
5.3.40.0110.04612.02
5.3.30.0060.05011.98
5.3.20.0070.04511.76
5.3.10.0080.06111.73
5.3.00.0100.04811.72
5.2.170.0060.0369.21
5.2.160.0120.0469.22
5.2.150.0120.0299.22
5.2.140.0080.0379.21
5.2.130.0070.0359.18
5.2.120.0120.0609.18
5.2.110.0100.0359.18
5.2.100.0060.0429.17
5.2.90.0050.0419.18
5.2.80.0090.0629.18
5.2.70.0120.0499.18
5.2.60.0160.0799.13
5.2.50.0080.0459.10
5.2.40.0140.0549.07
5.2.30.0060.0329.05
5.2.20.0080.0299.05
5.2.10.0080.0308.95
5.2.00.0120.0438.80
5.1.60.0080.0508.09
5.1.50.0100.0528.09
5.1.40.0130.0608.07
5.1.30.0150.0408.43
5.1.20.0080.0358.43
5.1.10.0050.0308.16
5.1.00.0080.0308.17
5.0.50.0080.0256.64
5.0.40.0070.0226.51
5.0.30.0040.0466.31
5.0.20.0050.0236.29
5.0.10.0050.0286.27
5.0.00.0070.0376.25
4.4.90.0060.0184.78
4.4.80.0050.0194.76
4.4.70.0090.0274.76
4.4.60.0080.0134.75
4.4.50.0030.0164.77
4.4.40.0030.0284.71
4.4.30.0010.0184.76
4.4.20.0050.0144.84
4.4.10.0040.0144.85
4.4.00.0030.0314.75
4.3.110.0030.0184.67
4.3.100.0020.0194.66
4.3.90.0060.0184.63
4.3.80.0050.0514.59
4.3.70.0060.0254.63
4.3.60.0040.0214.63
4.3.50.0050.0214.63
4.3.40.0040.0314.54
4.3.30.0020.0223.30
4.3.20.0020.0223.28
4.3.10.0040.0203.25
4.3.00.0130.0237.74

preferences:
144.52 ms | 1394 KiB | 7 Q