3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = ' <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut <span class=" red email_p_14">labore@et.de</span> dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea consequat. Duis aute irure in reprehenderit in voluptate velit <span class="email_p_22">esse@cillum.de</span> dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit <span class="blue email_ green">anim@id.de</span> laborum. Donec elementum ligula. Quis nostrud exercitation ullamco <span class="blue email_ green black">laboris@nisi.de</span> aliquip ex ea consequat. </p>'; $dom = new DOMDocument; libxml_use_internal_errors(true); $dom->loadHTML($string); $xpath = new DOMXPath($dom); $result = []; foreach ($xpath->query("//span[starts-with(@class, 'email_') or contains(@class, ' email_')]") as $span) { $result[] = [ 'mail' => $span->nodeValue, 'class' => preg_replace( '~.*\b(email_\S*).*~', '$1', $span->getAttribute('class') ) ]; } var_export($result);
Output for git.master, git.master_jit, rfc.property-hooks
array ( 0 => array ( 'mail' => 'labore@et.de', 'class' => 'email_p_14', ), 1 => array ( 'mail' => 'esse@cillum.de', 'class' => 'email_p_22', ), 2 => array ( 'mail' => 'anim@id.de', 'class' => 'email_', ), 3 => array ( 'mail' => 'laboris@nisi.de', 'class' => 'email_', ), )

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:
169.05 ms | 406 KiB | 5 Q