【发布时间】:2021-03-14 22:40:08
【问题描述】:
我正在尝试从 txt 文件中列出的 url 中提取电子邮件。
但是只有txt文件的最后一个url显示了他的相关邮件。
输出如下所示:
url1
url2
url3
url4
电子邮件:电子邮件地址1
电子邮件:电子邮件地址2
我不明白我做错了什么。
我有什么明显的遗漏吗?感谢您的帮助。
代码:
<?php
$handle = fopen("url-list.txt", "r");
if ($handle) {
while (($url = fgets($handle)) !== false) {
// process the line read.
echo "<br>";
echo $url ;
echo "<br>";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$result = curl_exec($ch);
curl_close($ch);
$emails = extract_emails_from($result);
foreach(array_unique($emails) as $email) {
echo "email: ", trim($email);
echo "<br>";
}
}
fclose($handle);
} else {
// error opening the file.
}
function extract_emails_from($string) {
preg_match_all("/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i", $string, $matches);
return $matches[0];
}
?>
【问题讨论】:
标签: php web-scraping