3v4l.org

run code in 300+ PHP versions simultaneously
<?php function is_ip($ip, $version = null) { switch ($version) { case 4: if (filter_var($ip, FILTER_VALIDATE_IP, array('flags' => array(FILTER_FLAG_IPV4, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE))) !== false) { return "passed <br />\n"; } break; case 6: if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) !== false) { return "passed <br />\n"; } break; case 'bug': if (filter_var($ip, FILTER_VALIDATE_IP, array('flags' => array(FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE))) !== false) { return "passed <br />\n"; } break; default: if (filter_var($ip, FILTER_VALIDATE_IP, array('flags' => array(FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE))) !== false) { return "passed <br />\n"; } break; } return "didn't pass <br />\n"; } $ip = "127.0.0.1"; echo "IP address validation test: " . $ip . "<br />\n"; echo "v4: ". is_ip($ip, 4); echo "v6: ". is_ip($ip, 6); echo "v6: ". is_ip($ip, 'bug'); echo "v4 or v6: ". is_ip($ip);
Output for git.master, git.master_jit, rfc.property-hooks
IP address validation test: 127.0.0.1<br /> v4: passed <br /> v6: didn't pass <br /> v6: passed <br /> v4 or v6: passed <br />

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:
165.92 ms | 405 KiB | 5 Q