3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Modificar enlaces que contienen una imagen // https://es.stackoverflow.com/q/90027/127 //Un HTML de ejemplo $html = ' <a href="https://i.stack.imgur.com/mOJ0a.png"> <span>Enlace a la misma URL de la imagen</span> <img src="https://i.stack.imgur.com/mOJ0a.png" /> </a> <span>Imagen independiente precedida por un </span> <a href="https://i.stack.imgur.com/mOJ0a.png">enlace</a> <img src="https://i.stack.imgur.com/mOJ0a.png" /> <a href="./"> <span>Enlace a una URL diferente que la imagen</span> <img src="https://i.stack.imgur.com/mOJ0a.png" /> </a> '; //Englobamos en body $html = "<body>$html</body>"; //Generar el DOM $dom = new DOMDocument; $dom->loadHTML($html, LIBXML_COMPACT | LIBXML_HTML_NOIMPLIED | LIBXML_NONET | LIBXML_HTML_NODEFDTD); //Obtener todos los enlaces $a_nodelist = $dom->getElementsByTagName('a'); //Recorrer cada uno foreach ($a_nodelist as $enlace) { //Obtener la primera imagen dentro del enlace $img = $enlace->getElementsByTagName('img')->item(0); if ($img) { //si tiene imagen //Comparar el enlace con la imagen $urlEnlace = $enlace->getAttribute('href'); $urlImagen = $img->getAttribute('src'); if ($urlEnlace == $urlImagen) { //Si son el mismo, reemplazar $enlace->parentNode->replaceChild($img, $enlace); } } } //imprimir el resultado echo $dom->saveHTML();

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.0130.00717.13
8.3.50.0140.00018.28
8.3.40.0120.00318.92
8.3.30.0110.00718.80
8.3.20.0040.00420.41
8.3.10.0000.00821.02
8.3.00.0000.00821.02
8.2.180.0110.00725.92
8.2.170.0090.00919.01
8.2.160.0140.00022.96
8.2.150.0080.00025.66
8.2.140.0080.00024.66
8.2.130.0000.00826.16
8.2.120.0090.00021.43
8.2.110.0090.00021.03
8.2.100.0070.00418.01
8.2.90.0100.00018.16
8.2.80.0060.00319.20
8.2.70.0000.00818.30
8.2.60.0000.00918.34
8.2.50.0060.00318.10
8.2.40.0030.00621.36
8.2.30.0000.00719.48
8.2.20.0040.00418.23
8.2.10.0040.00418.55
8.2.00.0000.00718.32
8.1.280.0060.00925.92
8.1.270.0040.01122.34
8.1.260.0030.00626.35
8.1.250.0050.00328.09
8.1.240.0000.00922.29
8.1.230.0080.00420.98
8.1.220.0000.00818.01
8.1.210.0030.00619.21
8.1.200.0030.00617.48
8.1.190.0000.00817.48
8.1.180.0040.00418.10
8.1.170.0090.00018.93
8.1.160.0050.00220.61
8.1.150.0040.00419.05
8.1.140.0050.00219.68
8.1.130.0050.00217.75
8.1.120.0070.00017.73
8.1.110.0040.00417.71
8.1.100.0000.00717.65
8.1.90.0000.00917.63
8.1.80.0040.00417.64
8.1.70.0080.00017.69
8.1.60.0000.00917.71
8.1.50.0000.00817.75
8.1.40.0060.00317.60
8.1.30.0030.00517.86
8.1.20.0040.00417.86
8.1.10.0080.00017.81
8.1.00.0040.00417.79
8.0.300.0000.00720.25
8.0.290.0030.00616.88
8.0.280.0080.00018.68
8.0.270.0060.00318.88
8.0.260.0030.00320.20
8.0.250.0030.00317.11
8.0.240.0050.00317.10
8.0.230.0050.00317.20
8.0.220.0050.00217.09
8.0.210.0090.00017.10
8.0.200.0000.00817.09
8.0.190.0030.00617.07
8.0.180.0050.00217.15
8.0.170.0070.00017.09
8.0.160.0000.00817.14
8.0.150.0040.00416.97
8.0.140.0000.00717.05
8.0.130.0000.00613.61
8.0.120.0000.00817.04
8.0.110.0040.00417.18
8.0.100.0040.00417.11
8.0.90.0070.00016.87
8.0.80.0080.00817.06
8.0.70.0030.00617.13
8.0.60.0040.00416.87
8.0.50.0050.00317.10
8.0.30.0130.00617.26
8.0.20.0110.00917.44
8.0.10.0080.00017.28
8.0.00.0060.01217.09
7.4.330.0000.00615.55
7.4.320.0060.00016.74
7.4.300.0030.00316.67
7.4.290.0030.00316.70
7.4.280.0040.00416.59
7.4.270.0000.00716.71
7.4.260.0050.00316.87
7.4.250.0050.00316.76
7.4.240.0030.00316.62
7.4.230.0030.00316.98
7.4.220.0000.00716.49
7.4.210.0060.01016.85
7.4.200.0000.00716.72
7.4.160.0060.01216.82
7.4.150.0210.00317.40
7.4.140.0080.00917.86
7.4.130.0060.01416.87
7.4.120.0170.00516.81
7.4.110.0140.00316.71
7.4.100.0000.01816.73
7.4.90.0030.01416.58
7.4.80.0070.01319.39
7.4.70.0070.01416.61
7.4.60.0130.00316.73
7.4.50.0090.00416.55
7.4.40.0060.01016.81
7.4.30.0000.01616.81
7.4.00.0110.00414.96
7.3.330.0020.00213.37
7.3.320.0060.00013.37
7.3.310.0030.00316.54
7.3.300.0000.00716.55
7.3.290.0000.00716.62
7.3.280.0080.00916.55
7.3.270.0120.00617.40
7.3.260.0130.00816.73
7.3.250.0100.01016.76
7.3.240.0120.01016.50
7.3.230.0080.00816.46
7.3.210.0060.00916.72
7.3.200.0030.02016.80
7.3.190.0000.01716.79
7.3.180.0100.00716.88
7.3.170.0140.00316.86
7.3.160.0060.00916.75
7.3.10.0070.00716.83
7.3.00.0030.00616.89
7.2.330.0100.00716.87
7.2.320.0140.01016.98
7.2.310.0120.00516.96
7.2.300.0040.01216.86
7.2.290.0100.01417.02
7.2.130.0040.01117.17
7.2.120.0040.00717.03
7.2.110.0040.00817.21
7.2.100.0060.00616.95
7.2.90.0110.00316.94
7.2.80.0030.00717.13
7.2.70.0080.00416.82
7.2.60.0050.00617.04
7.2.50.0030.00817.20
7.2.40.0040.01117.15
7.2.30.0080.00317.13
7.2.20.0000.01516.94
7.2.10.0000.01116.87
7.2.00.0040.00717.06
7.1.250.0030.00315.76
7.1.200.0030.00915.83
7.1.70.0990.00615.41
7.1.60.0990.00632.98
7.1.50.0900.01333.03
7.1.40.1080.01632.63
7.1.30.0980.01632.90
7.1.20.1290.01032.98
7.1.10.2030.01314.73
7.1.00.0780.01314.90
7.0.200.0800.01014.98
7.0.190.0870.01014.85
7.0.180.0810.01014.47
7.0.170.0900.00914.61
7.0.160.0790.01114.54
7.0.150.0800.01714.58
7.0.140.1050.01014.51
7.0.130.0780.01614.96
7.0.120.0760.01314.56
7.0.110.0840.00614.55
7.0.100.0850.00914.51
7.0.90.0900.01714.50
7.0.80.1110.00914.69
7.0.70.0980.00914.64
7.0.60.1090.01714.43
7.0.50.1130.01314.50
7.0.40.1080.01614.89
7.0.30.0980.01614.77
7.0.20.0940.01314.59
7.0.10.0760.02114.60
7.0.00.0930.00914.73

preferences:
44.7 ms | 401 KiB | 5 Q