Я использую oauth для yahoo api для импорта контактов электронной почты. И я успешно импортировал все мои контактные письма от yahoo на страницу.
Моя проблема теперь в том, что я использую javascript, чтобы выделить каждое письмо в текстовой области.
Это образец JavaScript, который будет выделять каждое электронное письмо.
echo "$(\"#email-tags\").addTag(\"[email protected]\");";
Теперь, если есть что-то, что не отформатировано как электронная почта, текстовая область будет пустой, не будет отображаться никакой электронной почты.
Теперь мой вопрос заключается в том, как импортировать только то, что отформатировано как электронная почта. Потому что когда-то в контакте с электронной почтой, есть какой-то контакт из почтовой программы, который имеет следующий формат: DAFDGREGSDFHASRFEW2 <= Не формат электронной почты, который сделает мою ошибку JavaScript в текстовой области и не будет показывать никаких сообщений по электронной почте.
Вот последняя строка контакта электронной почты yahoo:
// Call Contact API
$retarrs = callcontact_yahoo(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, $guid, $access_token, $access_token_secret, false, true);
//I have to use a delimiter of white space to separate each email here.
$ymail = str_replace(',', ' ', $retarrs);
//This is my javascript tag & the email contact list will show.
echo "$(\"#email-tags\").addTag(\"".$ymail."\");";
Вы можете использовать этот метод из этого сообщения:
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
// invalid emailaddress
}
Итак, ваш окончательный вариант может выглядеть (в PHP):
function is_email($email){
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
return true;
}
else
return false;
}
// Call Contact API
$retarrs = "[email protected],[email protected],hey@@hey,nothing";
//Explode, check, and re-collapse the string
$exploded = explode(",", $retarrs);
$exploded_emails = array();
foreach ($exploded as &$string) {
if (is_email($string))
$exploded_emails[] = $string;
}
$ymail = implode(" ",$exploded_emails);
echo "the emails are:" . $ymail;