На некоторых сайтах стоит защита от парсинга email, на сайте они отображаются нормально, но в коде выглядят так: HTML: <p><a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="650317040b160d0c1f0406091007250208040c094b060a08">[email protected]</a></p> И при парсинге мы получаем вместо email: [email protected] Решил написать функцию на php для преобразования закодированных таким образом email к нормальному виду, может кому пригодится: PHP: function emailDecode($email_encoded){ for($e = '', $r = hexdec('0x' . substr($email_encoded, 0, 2)), $n = 2; strlen($email_encoded) - $n; $n += 2){ $e .= '%' . substr('0' . dechex(hexdec('0x' . substr($email_encoded, $n, 2)) ^ $r), -2); } return urldecode($e); } Пример работы при использовании simple_html_dom: PHP: <?php require_once('/simplehtmldom_1_5/simple_html_dom.php'); $html = file_get_html('htpp://сайт'); $email_encoded = $html->find('.__cf_email__', 0)->getAttribute('data-cfemail'); $email = emailDecode($email_encoded); die($email); function emailDecode($email_encoded){ for($e = '', $r = hexdec('0x' . substr($email_encoded, 0, 2)), $n = 2; strlen($email_encoded) - $n; $n += 2){ $e .= '%' . substr('0' . dechex(hexdec('0x' . substr($email_encoded, $n, 2)) ^ $r), -2); } return urldecode($e); }