PHP正則表示式獲取武漢市的實時pm2.5資料並郵件傳送phpmailer
阿新 • • 發佈:2018-11-26
最近讀了PHP與mysql web開發這本書學習PHP,感覺受益匪淺,PHP是由C語言所編寫的,所以C語言的語法在PHP中同樣適用如printf與PHP的echo一樣具有輸出功能,(換行)。學習了PHP語言的正則表示式來抓取網頁內容,又讀到了php的mail函式時想用來發送郵件,但是mail函式只能在使用者機中自己傳送接收,查了一下資料發現有人開發出phpmailer來解決這個問題。
自己寫的這個小指令碼目的是正則表示式獲取武漢市的實時pm2.5資料並進行小小的判斷,結果傳送到接收人的郵箱中,此處採用了126郵箱傳送至本人qq郵箱作為測試。
<?php
$url='http://www.pm25.com/wuhan.html' ;
$lines_array=file($url);
$lines_string=implode('',$lines_array);
//echo htmlspecialchars($lines_string);
preg_match('/<a class=\"bi_aqiarea_num\" href=\"\/city\/wuhan\.html\">(.*?)<\/a>/',$lines_string,$result);//preg_match函式
echo '</br>';
$pm25=(int)$result[1];
printf("haha,%d\n",$pm25 );
echo '</br>';
if($pm25 <100)
{
printf("today is a good day");
}
else {
echo "today ,you'd better stay in home <br />";
}
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require 'class.phpmailer.php';
try {
$mail = new PHPMailer(true);
$mail ->IsSMTP();
$mail->CharSet='UTF-8'; //設定郵件的字元編碼,這很重要,不然中文亂碼
$mail->SMTPAuth = true; //開啟認證
$mail->Port = 25;
$mail->Host = "smtp.163.com";
$mail->Username = "[email protected]";
$mail->Password = "郵箱密碼";
//$mail->IsSendmail(); //如果沒有sendmail元件就註釋掉,否則出現“Could not execute: /var/qmail/bin/sendmail ”的錯誤提示
$mail->AddReplyTo("[email protected]","mckee");//回覆地址
$mail->From = "[email protected]";
$mail->FromName = "yourlover";//發件人姓名
$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject = "zhang";//郵件標題
if ($pm25 <100)
{
$mail->Body = "<h1>phpmail</h1>(<font color=red>today is a good day</font>)the pm25 is.$pm25";
}
else
{
$mail->Body = "<h1>phpmail</h1>(<font color=red>today ,you'd better stay in home</font>)the pm25 is.$pm25";
}
//$mail->Body = "<h1>phpmail</h1>(<font color=red>www.phpddt.com</font>)對phpmailer的測試內容";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; //當郵件不支援html時備用顯示,可以省略
$mail->WordWrap = 80; // 設定每行字串的長度
//$mail->AddAttachment("f:/test.png"); //可以新增附件
$mail->IsHTML(true);
$mail->Send();
echo '郵件已傳送';
} catch (phpmailerException $e) {
echo "郵件傳送失敗:".$e->errorMessage();
}
?>