Jump to content

Hide email


putty

Recommended Posts

The problem is that the code is coming out of the CMS as plain text with the emails within the text

 

Example:

$content = " Some test text with [email protected] two email address [email protected], there could be many many email addresses. ";

$content = new SpiderTrap($content);

class SpiderTrap{

public function __construct($content){
	return $this->emailFilter($content);
}

public function emailFilter($content){

	$search = "~[\s]+([^\s]+@[^\s]+)[\s]+~iUs";
		// Find the tags
		preg_match_all($search, $content, $matches);

		// Loop through each tag
		for ($i=0; $i < count($matches['0']); $i++) {
			$value =  $matches['1'][$i];
			$email = $this->email2ascii($value);
			$content = str_replace($value, $email, $content);
		}

	return $content;

}

function email2ascii($email){
	$asciiEmail = '';

	$lenght = strlen($email);

	for($i = 0; $i < $lenght; $i++){
		$asciiEmail .= '&#' . ord($email[$i]) . ';';
	}

	return $asciiEmail;
}

}

 

The problem is with the regular expression, it only ever finds the first email. Is there anyone who has some skill with regular expression who can help me out?

 

 

 

Link to comment
https://forums.phpfreaks.com/topic/146940-hide-email/#findComment-771718
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.