使用PHP免費(fèi)發(fā)送定時(shí)短信的實(shí)例
由于飛信目前沒(méi)有開(kāi)發(fā)平臺(tái),現(xiàn)有API都是第三方開(kāi)發(fā),貌似是通過(guò)破解WAP飛信或者3G飛信,模擬瀏覽器的行為來(lái)發(fā)短信。另外Google code上有開(kāi)源的php飛信發(fā)送類php-fetion。這些飛信接口方便了定時(shí)短信的開(kāi)發(fā)。
背景:老媽年紀(jì)大了,文化程度不高,但是需要每天了解天氣信息才能下地工作,也就無(wú)法通過(guò)網(wǎng)絡(luò)獲取天氣,只能通過(guò)電視。于是尋思著自己抓取網(wǎng)絡(luò)上的天氣信息,通過(guò)手機(jī)短信發(fā)送給老媽。
問(wèn)題:自己不可能每天定時(shí)給老媽發(fā)送天氣短信,現(xiàn)有的天氣預(yù)報(bào)訂閱短信又是要錢的。
解決:
免費(fèi)發(fā)送短信到手機(jī)
方案1:使用飛信API
由于飛信目前沒(méi)有開(kāi)發(fā)平臺(tái),現(xiàn)有API都是第三方開(kāi)發(fā),貌似是通過(guò)破解WAP飛信或者3G飛信,模擬瀏覽器的行為來(lái)發(fā)短信。另外Google code上有開(kāi)源的php飛信發(fā)送類php-fetion(http://code.google.com/p/php-fetion/)。這些飛信接口方便了定時(shí)短信的開(kāi)發(fā)。
唯一的缺點(diǎn)就是第三方的API不穩(wěn)定,也有飛信賬號(hào)泄露的風(fēng)險(xiǎn)。
此處,我使用http://3.ibtf.sinaapp.com/提供的飛信API進(jìn)行短信發(fā)送。
該API只需提供發(fā)送者手機(jī)號(hào),密碼,接受者手機(jī)號(hào),消息內(nèi)容作為url參數(shù)即可。唯一需要注意的是中文的亂碼問(wèn)題(使用gbk而不是utf-8編碼,直接輸入中文亂碼,輸入中文的gbk編碼手機(jī)接收正常),可以使用iconv函數(shù)或者加上參數(shù)”&u=1”解決。
方案2:使用139郵箱的短信提醒功能
139郵箱也是中國(guó)移動(dòng)的一項(xiàng)業(yè)務(wù),提供了郵件短信提醒的功能。只要在郵箱里面設(shè)置郵件到達(dá)通知就OK了,除了彩信,其他的長(zhǎng)短信,普通短信,免提短信都是免費(fèi)的。注意,時(shí)間久了,發(fā)件箱和收件箱都要清除一下,以免占用過(guò)多空間而影響正常使用。
另外,只需要編寫一個(gè)簡(jiǎn)單的郵件發(fā)送的php腳本。而新浪SAE也提供了此Mail服務(wù)。使用Mail服務(wù)里的函數(shù),可以快速發(fā)送郵件,代碼如下:
<?php $mail = new SaeMail(); $ret = $mail->quickSend( '收件人@139.com' , '這是主題' , '這是正文' , '這是發(fā)件人郵箱' , '這是發(fā)件人密碼' , '這是smtp服務(wù)host' , [這是smpt服務(wù)端口] ); //發(fā)送失敗時(shí)輸出錯(cuò)誤碼和錯(cuò)誤信息 if ($ret === false) var_dump($mail->errno(),$mail->errmsg()); ?>
效果如下:
短信成功發(fā)送后,就需要定時(shí)了。還好新浪SAE提供了Cron服務(wù)。Cron服務(wù)是SAE為開(kāi)發(fā)者提供的分布式定時(shí)服務(wù),用來(lái)定時(shí)觸發(fā)開(kāi)發(fā)者的特定動(dòng)作,滿足比如定時(shí)計(jì)算排行榜等需求。Cron的設(shè)置是通過(guò)App的config.yaml來(lái)實(shí)現(xiàn)的,只要用戶在App目錄下的config.yaml里按照我們的提供的語(yǔ)法格式進(jìn)行配置,部署后就能生效。
增加Cron
編輯saetest/1/config.yaml,增加cron段,config.yaml示例如下:
name: saetest
version: 1
cron:
- description: cron test
url: mycron/test.php
schedule: $2 day of october 19:00
timezone: Beijing
- description: another cron test
url: mycron/another_test.php
schedule: every 10 mins
timezone: Beijing
上面的示例描述了兩個(gè)定時(shí)任務(wù):每年10月2日19點(diǎn)執(zhí)行mycron/test.php;每隔10分鐘執(zhí)行mycron/another_test.php
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP快速導(dǎo)出百萬(wàn)級(jí)數(shù)據(jù)到CSV或者EXCEL文件
這篇文章主要介紹了PHP快速導(dǎo)出百萬(wàn)級(jí)數(shù)據(jù)到CSV或者EXCEL文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11php設(shè)計(jì)模式之正面模式實(shí)例分析【星際爭(zhēng)霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之正面模式,結(jié)合星際爭(zhēng)霸游戲案例形式分析了php正面模式相關(guān)原理、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03php實(shí)現(xiàn)微信小程序授權(quán)登錄功能(實(shí)現(xiàn)流程)
這篇文章主要介紹了php實(shí)現(xiàn)微信小程序授權(quán)登錄功能,本文通過(guò)一段詳細(xì)的代碼給大家講解的非常詳細(xì),需要的朋友參考下2019-11-11使用php批量刪除數(shù)據(jù)庫(kù)下所有前綴為prefix_的表
這篇文章主要介紹了php如何批量刪除數(shù)據(jù)庫(kù)下所有前綴為prefix_的表,需要的朋友可以參考下2014-06-06下拉列表多級(jí)聯(lián)動(dòng)dropDownList示例代碼
本文為大家詳細(xì)介紹下下拉列表多級(jí)聯(lián)動(dòng) dropDownList具體的實(shí)現(xiàn)代碼,感興趣的朋友可以參考下哈,至于一些細(xì)節(jié)部分后續(xù)再補(bǔ)2013-06-06Bootstrap+PHP實(shí)現(xiàn)多圖上傳功能實(shí)例詳解
這篇文章主要介紹了Bootstrap+PHP實(shí)現(xiàn)多圖上傳功能實(shí)例詳解,本文圖片加實(shí)例相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-04-04Zend Framework使用Zend_Loader組件動(dòng)態(tài)加載文件和類用法詳解
這篇文章主要介紹了Zend Framework使用Zend_Loader組件動(dòng)態(tài)加載文件和類用法,結(jié)合實(shí)例形式分析了Zend_Loader組件實(shí)現(xiàn)文件自動(dòng)加載與屬性判斷的相關(guān)使用技巧,需要的朋友可以參考下2016-12-12