[英]Retrieve an email address on the website
我是Android应用程序的发行商。
我的网站需要自动检索Android应用程序数据,但Google Play不支持iTunes Store等API系统。 因此,我需要创建一个PHP命令来帮助检索Android数据。 我需要获取标题,应用程序图像,描述和电子邮件地址。
首先,我在知道Google Play URL地址时尝试获取电子邮件地址。 这是我做的例子。 这是针对《华尔街日报》应用的。
华尔街日报Android应用网址-https: //play.google.com/store/apps/details?id=wsj.reader_sp
<a href="mailto:mobilereader@wsj.com" rel="nofollow">Email Developer</a>
当我单击该网站时,可以找到上面的HTML代码。
$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);
$parsing = new SimpleXmlElement($string);
$attrs = (array)$parsing->attributes();
$mail = str_replace('mailto:','',$attrs['href']);
if(filter_var($mail,FILTER_VALIATE_MAIL))
{
echo $mail;
}
结果应为“ mobilereader@wsj.com”,但失败。 你看到问题了吗? 谢谢。
您可以使用PHP DOMDocument执行此操作,例如:
$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);
$dom = new DOMDocument();
$dom->loadHTML($string);
$anchors = $dom->getElementsByTagName('a');
foreach ($anchors as $anchor) {
if ($anchor->nodeValue === 'Email Developer') {
$email = str_replace('mailto:', '', $anchor->getAttribute('href'));
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo $email;
}
}
}
您提供的网址的示例输出为: mobilereader@wsj.com
使用正则表达式匹配电子邮件地址。 另外,您在过滤器名称中输入了错误。
尝试这个:
$Google_Play_URL = 'https://play.google.com/store/apps/details?id=wsj.reader_sp';
$string = file_get_contents($Google_Play_URL);
preg_match('/<a href="mailto\:(.*)" rel="nofollow">Email Developer<\/a>/s', $string, $matches);
if (count($matches) > 0 && filter_var($matches[1], FILTER_VALIDATE_MAIL))
{
echo $matches[1];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.