Thursday, March 04, 2010

Extract display name from email address


/*
$tomatch = array('Name Surname ','name.surname@blah.com','"b. blah"@blah.co.nz','Some guy <"b. blah"@blah.co.nz>');

foreach ($tomatch as $email) {
print_r(extract_display_name_email($email));
}

*/

function extract_display_name_email($str){
$str = trim($str);
$pos = strrpos($str, '@');
if(false === $pos) return false;

//spaces inside the display name !
if('"' == $str[$pos-1]){
$newpos = strrpos(substr($str, 0, $pos - 1), '"');
if(0 === $newpos) {
$newpos = false; //no display name
}else{
$newpos = strrpos(substr($str, 0, $newpos - 1), ' '); //find last space before "
}
}else{
$newpos = strrpos($str, ' '); //if false then there is no display name
}

if($newpos !== false){
$displayname = trim(substr($str, 0, $newpos));
$email = trim(substr($str, $newpos));
}else{
$displayname = '';
$email = $str;
}
if($email[0] == '<') $email = substr($email, 1, -1); //strip <>
if(strlen($displayname) && $displayname[0] == '"') $displayname = substr($displayname, 1, -1); //strip "

return array('email'=>$email, 'displayname'=>$displayname);
}

Saturday, February 13, 2010

Replace urls in a content

function cleanlinks($var){
if(is_string($var)){
$var = preg_replace("/\n+/", ' ', $var);
$a = preg_match_all('/]*href\s*=\s*([\"\']+)([^\"\'\s>]+?)(\1|>)/i',$var,$matches);
if($a){
foreach ($matches[2] as $url){
$var = str_replace($url, '/', $var);
}
}
}
return $var;
}