3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = array( '192.168.11.12/24', '62.10.11.12/32', '128.10.11.12/8', '96.50.51.52/16', '192.168.1.188/27' ); $b = array( '192.168.128.0', // kein Treffer '192.168.11.255', // Treffer '62.10.11.255', // kein Treffer '62.10.11.12', // Treffer '128.255.255.255', // Treffer '129.255.255.255', // kein Treffer '96.50.255.255', // Treffer '97.50.51.52', // kein Treffer '192.168.1.189', // Treffer '192.168.1.89' // kein Treffer ); function f(array $a) { $new = array(); foreach ($a as $item) { list($ipv4, $cidr) = explode('/', $item); $iplong = ip2long($ipv4); $iplong >>= 32 - $cidr; if (!isset($new[$cidr])) { $new[$cidr] = array(); } $new[$cidr][$iplong] = true; } return $new; } function g(array $a2, array $b) { foreach ($b as $item) { $iplong = ip2long($item); for ($i = 1; $i <= 32; $i++) { if (isset($a2[$i][$iplong >> 32 - $i])) { echo $item . '- Treffer' . '(' . $i . ')' . "\n"; continue 2; } } echo $item . ' - kein Treffer' . "\n"; } } $a2 = f($a); g($a2, $b);
Output for git.master, git.master_jit, rfc.property-hooks
192.168.128.0 - kein Treffer 192.168.11.255- Treffer(24) 62.10.11.255 - kein Treffer 62.10.11.12- Treffer(32) 128.255.255.255- Treffer(8) 129.255.255.255 - kein Treffer 96.50.255.255- Treffer(16) 97.50.51.52 - kein Treffer 192.168.1.189- Treffer(27) 192.168.1.89 - kein Treffer

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
57.4 ms | 402 KiB | 8 Q