Я пытаюсь получить все адреса электронной почты от экспонентов ИФА Берлин.
Это довольно легко, хотя ползти.
Но в качестве хитрости они просто позволяют нам скачать файл .vcf или отправить электронное письмо (я думаю, через их сервер). Я хотел бы найти этот адрес электронной почты без загрузки этого файла VCF. В противном случае я мог бы скачать его и легко прочитать с помощью PHP (так как мой сканер также на PHP).
Это также мой первый вопрос здесь после долгих лет! Приятно познакомиться, ребята.
Как читать
.vcf
файл из браузера?
Этот файл всегда будет загруженным файлом и никогда не будет отображаться в браузере. Один из способов заставить его работать — это настроить пользовательское расширение браузера, которое временно сохраняет файл, анализирует микроформат и отображает информацию.
PHP скребковый подход
Существуют парсеры vcard: https://github.com/nuovo/vCard-parser
но я думаю, что вы могли бы основать это на решении RegExp: /EMAIL;INTERNET:(.*)/
,
Давайте представим, что ваш первый заезд дает вам список идентификаторов участников,
тогда ваша вторая (vcard) проверка может извлечь и извлечь имя и электронную почту по ID:
<?php
function getVcard($id) {
return file_get_contents('http://www.virtualmarket.ifa-berlin.de/?Action=attendeeVcard&id=' . $id);
}
function getEmailFromVcard($vcard)
{
preg_match('/EMAIL;INTERNET:(.*)/', $vcard, $matches);
if(isset($matches[1])) {
return $matches[1];
}
}
function getNameFromVcard($vcard)
{
preg_match('/N:(.*);;/', $vcard, $matches);
if(isset($matches[1])) {
$array = explode(';', $matches[1]);
$name = trim($array[1]) . ' ' . trim($array[0]);
return $name;
}
}
$id = 1775586;
$vcard = getVcard($id);
$email = getEmailFromVcard($vcard);
$name = getNameFromVcard($vcard);
echo $name . ' ' . $email;
Других решений пока нет …