3v4l.org

run code in 300+ PHP versions simultaneously
<?php function get_icon( $html, $url ) { // Grab the icon's link element. $pattern = '#<link\s[^>]*rel=(?:[\"\']??)\s*(?:icon|shortcut icon|icon shortcut)\s*(?:[\"\']??)[^>]*\/?>#isU'; preg_match( $pattern, $html, $element ); $element = ! empty( $element[0] ) && is_string( $element[0] ) ? trim( $element[0] ) : ''; if ( empty( $element ) ) { return ''; } // Get the icon's href value. $pattern = '#href=([\"\']??)([^\" >]*?)\\1[^>]*#isU'; preg_match( $pattern, $element, $icon ); $icon = ! empty( $icon[2] ) && is_string( $icon[2] ) ? trim( $icon[2] ) : ''; if ( empty( $icon ) ) { return ''; } // If the icon is a data URL, return it. $parsed_icon = parse_url( $icon ); var_dump( $parsed_icon ); if ( 'data' === $parsed_icon['scheme'] ) { return $icon; } // Attempt to convert relative URLs to absolute. $parsed_url = parse_url( $url ); $root_url = $parsed_url['scheme'] . '://' . $parsed_url['host'] . '/'; $icon = WP_Http::make_absolute_url( $icon, $root_url ); return $icon; } $html = array( '<link href="data:image/png;base64,iVBORw0KGgo=" rel="icon" type="image/png" />', '<link rel="icon" href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" type="image/x-icon" />', ); foreach ( $html as $icon_html ) { $icon = get_icon( $icon_html, '' ); var_dump( $icon ); }
Output for git.master, git.master_jit, rfc.property-hooks
array(2) { ["scheme"]=> string(4) "data" ["path"]=> string(29) "image/png;base64,iVBORw0KGgo=" } string(34) "data:image/png;base64,iVBORw0KGgo=" array(2) { ["scheme"]=> string(4) "data" ["path"]=> string(180) "image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII=" } string(185) "data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABmJLR0T///////8JWPfcAAAACXBIWXMAAABIAAAASABGyWs+AAAAF0lEQVRIx2NgGAWjYBSMglEwCkbBSAcACBAAAeaR9cIAAAAASUVORK5CYII="

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.01 ms | 407 KiB | 5 Q