1. 程式人生 > >PHP正則表示式獲取武漢市的實時pm2.5資料並郵件傳送phpmailer

PHP正則表示式獲取武漢市的實時pm2.5資料並郵件傳送phpmailer

最近讀了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(); } ?>