3v4l.org

run code in 300+ PHP versions simultaneously
<?php // эта функция отправляет команду в сокет, и возвращает ответ от сервера function sWrite( $socket, $data, $echo = true ){ // отображаем отправляемую команду, если это требуется if( $echo ) echo $data; // отправляем команду в сокет fputs( $socket, $data ); // получаем первый байт ответа от сервера $answer = fread( $socket, 1 ); // узнаем информацию о состоянии потока $remains = socket_get_status( $socket ); // и получаем оставшиеся байты ответа от сервера if( $remains --> 0 ) $answer .= fread( $socket, $remains['unread_bytes'] ); // функция возвращает ответ от сервера на переданную команду return $answer; } // адрес электропочты, который надо проверить $email = "twixed@mail.ru"; // получаем данные об MX-записи домена, указанного в email $mx = dns_get_record( end( explode( "@", $email ) ), DNS_MX ); $mx = $mx[0]['target']; // открываем сокет и создаем поток $socket = fsockopen( $mx, 25, $errno, $errstr, 10 ); if( !$socket ){ echo "$errstr ($errno)\n"; }else{ // отправляем пустую строку, чтобы получить приветствие сервера echo sWrite( $socket, "" ); // представляемся сами echo sWrite( $socket, "EHLO example.com\r\n" ); echo sWrite( $socket, "MAIL FROM: dummy@example.com\r\n" ); // запрашиваем разрешение на отправку письма адресату $response = sWrite( $socket, "RCPT TO: $email\r\n" ); echo $response; // закрываем соединение echo sWrite( $socket, "QUIT\r\n" ); fclose( $socket ); // ниже идет простейшая обработка полученного ответа echo "\nCheck report:\n"; if( substr_count( $response, "550" ) > 0 ) echo "Required email address does not exist.\n\n"; else if( substr_count( $response, "250" ) > 0 ) if( substr_count( $response, "OK" ) > 0 ) echo " Required email address exists.\n\n"; else echo " Email address accepted but it looks like the server is working as a relay host.\n\n"; else echo " Required email address existence was not recovered. Last response:\n ---\n$response ---\n\n"; }

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)
8.3.60.0140.00718.68
8.3.50.0120.01622.01
8.3.40.0100.01019.21
8.3.30.0040.01119.29
8.3.20.0040.00420.63
8.3.10.0080.00022.46
8.3.00.0040.00422.88
8.2.180.0120.00618.65
8.2.170.0100.01322.96
8.2.160.0040.01121.30
8.2.150.0080.00024.18
8.2.140.0060.00324.66
8.2.130.0040.00426.16
8.2.120.0040.00419.73
8.2.110.0060.00319.76
8.2.100.0110.00018.15
8.2.90.0100.00019.55
8.2.80.0000.00818.29
8.2.70.0080.00017.98
8.2.60.0030.00518.41
8.2.50.0040.00418.07
8.2.40.0060.00318.72
8.2.30.0070.00018.37
8.2.20.0040.00418.14
8.2.10.0030.00619.85
8.2.00.0000.00718.11
8.1.280.0140.00025.92
8.1.270.0040.00422.43
8.1.260.0070.00026.35
8.1.250.0040.00428.09
8.1.240.0060.00323.97
8.1.230.0080.00421.11
8.1.220.0060.00317.91
8.1.210.0040.00418.77
8.1.200.0060.00317.48
8.1.190.0000.00817.68
8.1.180.0000.00818.10
8.1.170.0050.00318.90
8.1.160.0040.00422.18
8.1.150.0030.00618.74
8.1.140.0040.00417.72
8.1.130.0030.00318.04
8.1.120.0040.00417.65
8.1.110.0040.00417.73
8.1.100.0000.00717.60
8.1.90.0040.00417.71
8.1.80.0070.00017.52
8.1.70.0030.00317.61
8.1.60.0030.00617.66
8.1.50.0040.00417.66
8.1.40.0000.00817.65
8.1.30.0040.00417.79
8.1.20.0080.00017.84
8.1.10.0040.00417.80
8.1.00.0000.00717.71
8.0.300.0040.00418.77
8.0.290.0050.00317.53
8.0.280.0040.00418.61
8.0.270.0030.00317.38
8.0.260.0000.00717.20
8.0.250.0000.00717.21
8.0.240.0050.00317.18
8.0.230.0080.00017.29
8.0.220.0030.00317.01
8.0.210.0070.00017.03
8.0.200.0030.00317.19
8.0.190.0030.00517.20
8.0.180.0040.00417.05
8.0.170.0000.00717.24
8.0.160.0080.00017.17
8.0.150.0040.00417.03
8.0.140.0030.00517.18
8.0.130.0000.00613.69
8.0.120.0040.00417.17
8.0.110.0040.00417.21
8.0.100.0060.00317.15
8.0.90.0030.00517.20
8.0.80.0070.01017.27
8.0.70.0040.00417.10
8.0.60.0000.00817.26
8.0.50.0040.00417.13
8.0.30.0120.01617.37
8.0.20.0110.00817.41
8.0.10.0050.00317.22
8.0.00.0140.00516.96
7.4.330.0030.00315.48
7.4.320.0030.00316.69
7.4.300.0000.00616.76
7.4.290.0000.00816.78
7.4.280.0070.00016.72
7.4.270.0000.00716.70
7.4.260.0040.00716.59
7.4.250.0040.00416.80
7.4.240.0040.00316.85
7.4.230.0000.00716.85
7.4.220.0060.01516.89
7.4.210.0080.00916.86
7.4.200.0030.00516.77
7.4.190.0070.00016.86
7.4.160.0100.00716.58
7.4.150.0110.00717.40
7.4.140.0150.01117.86
7.4.130.0130.00816.78
7.4.120.0080.01316.79
7.4.110.0090.00917.00
7.4.100.0110.00716.91
7.4.90.0110.00716.89
7.4.80.0150.01119.39
7.4.70.0040.01216.54
7.4.60.0180.00016.64
7.4.50.0040.00417.03
7.4.40.0040.00822.77
7.4.30.0040.01316.75
7.4.00.0060.00615.16
7.3.330.0050.00013.42
7.3.320.0030.00313.61
7.3.310.0040.00416.70
7.3.300.0070.00016.64
7.3.290.0130.00316.64
7.3.280.0080.01316.68
7.3.270.0060.01317.40
7.3.260.0130.01016.81
7.3.250.0080.01116.78
7.3.240.0090.01216.91
7.3.230.0130.01016.88
7.3.210.0090.00916.91
7.3.200.0090.01319.39
7.3.190.0030.02016.62
7.3.180.0170.00016.90
7.3.170.0080.00816.87
7.3.160.0060.01216.83
7.3.120.0120.00615.15
7.2.330.0060.01217.01
7.2.320.0110.01416.98
7.2.310.0150.00917.09
7.2.300.0150.00316.78
7.2.290.0110.00816.57
7.2.60.0030.01017.22
7.1.200.0170.00015.95
7.1.70.0000.01117.61
7.1.60.0100.01619.82
7.1.50.0150.00917.45
7.1.00.0070.07322.63
7.0.200.0060.00616.82
7.0.140.0070.06722.32
7.0.60.0030.04320.27
7.0.50.0230.04018.06
7.0.40.0170.07720.58
7.0.30.0400.07320.52
7.0.20.0230.04720.48
7.0.10.0300.04720.49
7.0.00.0070.09020.46
5.6.280.0070.07021.20
5.6.210.0070.07720.77
5.6.200.0070.08018.50
5.6.190.0100.04021.12
5.6.180.4170.05021.09
5.6.170.0230.04720.91
5.6.160.0130.05720.98
5.6.150.0100.07018.48
5.6.140.0070.08718.50
5.6.130.0070.08718.59
5.6.120.0070.05721.36
5.6.110.0130.08021.44
5.6.100.0170.06021.45
5.6.90.0070.08721.40
5.6.80.0130.07020.70
5.6.70.0370.07020.80
5.5.350.0030.08320.67
5.5.340.0070.08018.55
5.5.330.0070.08020.81
5.5.320.0370.07020.64
5.5.310.0200.04720.79
5.5.300.0130.04318.38
5.5.290.0030.05318.30
5.5.280.0070.07021.32
5.5.270.0070.08721.10
5.5.260.0100.05721.31
5.5.250.0170.07020.93
5.5.240.0070.03720.54
5.4.450.0470.05019.81
5.4.440.0370.04319.75
5.4.430.1130.00019.80
5.4.420.0970.00019.81
5.4.410.0100.05319.21
5.4.400.0100.06319.04
5.4.390.0230.07318.98
5.4.380.0230.05718.97
5.4.370.0300.04319.00
5.4.360.0100.06018.75
5.4.350.0270.05718.90
5.4.340.0230.05019.13
5.4.320.0070.04112.72
5.4.310.0090.04712.71
5.4.300.0070.03712.72
5.4.290.0060.03912.71
5.4.280.0070.03712.61
5.4.270.0070.04812.58
5.4.260.0040.04012.59
5.4.250.0060.03812.58
5.4.240.0100.03212.58
5.4.230.0050.03912.57
5.4.220.0060.03712.57
5.4.210.0080.03412.58
5.4.200.0090.04012.58
5.4.190.0050.04412.57
5.4.180.0040.04612.57
5.4.170.0070.03712.59
5.4.160.0060.03612.58
5.4.150.0060.03912.57
5.4.140.0060.05212.25
5.4.130.0070.04712.25
5.4.120.0100.04112.20
5.4.110.0070.03612.20
5.4.100.0070.03512.20
5.4.90.0050.04812.20
5.4.80.0110.04312.20
5.4.70.0070.03412.20
5.4.60.0070.03612.20
5.4.50.0130.03712.19
5.4.40.0050.04012.18
5.4.30.0070.03412.17
5.4.20.0110.03412.18
5.4.10.0100.03812.18
5.4.00.0040.03911.66
5.3.290.0080.04612.93
5.3.280.0030.04012.83
5.3.270.0050.04112.84
5.3.260.0070.04712.84
5.3.250.0100.04912.84
5.3.240.0070.03912.84
5.3.230.0120.03912.84
5.3.220.0130.04612.80
5.3.210.0140.04612.80
5.3.200.0080.05312.80
5.3.190.0060.05012.80
5.3.180.0100.05112.80
5.3.170.0060.04612.80
5.3.160.0110.04412.80
5.3.150.0110.05112.80
5.3.140.0140.04612.79
5.3.130.0080.05312.79
5.3.120.0100.05312.79
5.3.110.0070.05512.79
5.3.100.0100.04912.27
5.3.90.0050.04012.25
5.3.80.0090.03512.25
5.3.70.0050.05312.24
5.3.60.0050.04612.22
5.3.50.0100.03412.17
5.3.40.0060.03812.16
5.3.30.0050.04112.13
5.3.20.0120.03211.91
5.3.10.0070.03811.88
5.3.00.0070.03611.87
5.2.170.0050.0329.36
5.2.160.0060.0309.36
5.2.150.0060.0379.36
5.2.140.0090.0299.36
5.2.130.0080.0319.32
5.2.120.0050.0289.32
5.2.110.0050.0369.32
5.2.100.0100.0359.33
5.2.90.0080.0369.32
5.2.80.0090.0299.31
5.2.70.0080.0399.31
5.2.60.0040.0319.27
5.2.50.0070.0289.25
5.2.40.0080.0279.22
5.2.30.0080.0389.20
5.2.20.0070.0279.20
5.2.10.0030.0309.09
5.2.00.0030.0308.96
5.1.60.0070.0228.23
5.1.50.0050.0248.23
5.1.40.0060.0248.22
5.1.30.0050.0378.57
5.1.20.0050.0298.59
5.1.10.0080.0258.31
5.1.00.0090.0288.32
5.0.50.0040.0216.64
5.0.40.0040.0196.65
5.0.30.0010.0346.46
5.0.20.0030.0206.41
5.0.10.0030.0226.39
5.0.00.0020.0336.38
4.4.90.0040.0154.78
4.4.80.0010.0174.75
4.4.70.0020.0174.75
4.4.60.0040.0144.75
4.4.50.0030.0184.77
4.4.40.0060.0244.71
4.4.30.0050.0174.76
4.4.20.0020.0174.84
4.4.10.0050.0144.85
4.4.00.0030.0254.75
4.3.110.0060.0134.67
4.3.100.0010.0174.67
4.3.90.0010.0164.63
4.3.80.0030.0244.59
4.3.70.0040.0204.63
4.3.60.0020.0164.62
4.3.50.0020.0174.62
4.3.40.0030.0244.54
4.3.30.0020.0163.32
4.3.20.0010.0193.30
4.3.10.0020.0163.25
4.3.00.0030.02013.28

preferences:
47.7 ms | 400 KiB | 5 Q