發表文章

目前顯示的是 三月, 2011的文章

php也可以利用gmail發信 phpmailer

在php中有內建的mail函式不過這個方式要先在php.ini中進行設定而且功能非常有限,如果伺服器不是我們自己管的還真的不知道要怎麼辦!不過好險有phpmailer這個東西的推出
phpmailer 官網
這個套件可以幫助我們做更進階的發信功能,雖然他有提供php4,php5~6的版本不過,php4的我不想說了我們直接跳到php5的吧!
附帶一提:到目前為止(2011/3/22)官網上的下載連結是錯的~點php5版本的下載聯結還是走到php4版本的下載頁面
請點選下面連結下載正確的清單吧:
phpmailer 各版本下載


雖然應該要寫個教學範例,但是解壓縮以後竟然有一個examples資料夾耶!!挖~~最厲害的是他裡面的範例檔竟然還有專門為了gmail的伺服器寫的
也就是說拿著這個東西就可以利用gmail的伺服器發信給別人,真是佛心來的!!!


不過我們還是來小說明一下吧!
$mail->Host = "mail.yourdomain.com"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "yourusername@gmail.com"; // GMAIL username
$mail->Password = …

Linux的排程工作 cron

有些時候我們會需要linux幫我們定時的去處理一些循環要做的事情,例如清掉log檔案啦~備份啦~~之類的瑣事。
如果說都要人工去處理,通常一定都會忘記,所以我們要建立排程工作讓系統自動執行。 在linux上的排程工作是一個叫做cron的服務通常系統會預先開啟。不過我們也可以手動先去開啟 service crond start
不過一開始這個東西你執行了也沒用,因為這個服務他會每分鐘查找一個叫做crontab的檔案這個檔案就是用來記錄要執行動作的時間和動作
要編輯這個檔案你只要執行這個指令
crontab -e
他就會進入vi的模式中讓你進行編輯(一開始當然會是空空的),每一行就代表一件你要處理的排程工作,格式如下:
分 時 日 月 週 指令
就這麼簡單的格式,他最小的單位可以支援到每分鐘執行,就如同剛剛提到的因為他每分鐘會查一次這個檔案瞜!
要注意的是,每個欄位都是必填的,假設你要讓這個指令在每小時的20分都執行一次你就輸入成:
20 * * * * 動作
我習慣倒著看這張表:他的意思就是執行動作在每個小時的20分,*這個符號代表通用所以如果你要做到每分鐘都執行一次的話就會變成* * * * * 動作
或者你可以用半型逗號(,)來設定一個欄位執行多次
0,10,20,30,40,50 * * * * 動作
上面這段就會讓系統變成每十分鐘執行一次,如果你的週期間隔時間固定你也可以寫成
*/10 * * * * 動作
其中斜線(/)的意思就是作為間隔時間的設定,當我們都編輯完成後在vi中儲存就完成編輯的動作了。
不過就如同其他的系統服務,在修改過後請記得重新啟動這樣設定檔才會馬上被套用
service crond restart

讓文章中加入程式語法

在blogger中要加入程式語法其實一點也不難,只要掌握幾個重點:
1.你至少要知道怎麼修改css
    在"設計"中找到修改HTML的功能直接在裡面編輯一個專屬於程式語法用的class,我就取名為code夠明白吧!
然後在裡面貼上css的語法,如下:
.code{ background:#dfdfdf; color:#333333; padding:5px; border:1px solid #000; }
2.基本上blogger基於安全性理由是不會直接讓你貼上程式語法在前台中顯示的,所以我們要先經過轉碼,線上轉碼的網址:http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx
經過轉碼以後,再貼到"修改HTML"中對應的位置,記得要用pre標籤和 class=code包起來喔
如下:

經過轉碼後我們看到的內容是長這樣的
<pre class="code"> 這邊可以貼上語法<b>不會被處理掉</b> </pre>
把這個內容貼到編輯器中他會自動幫我們轉回來變成
<pre class="code"> 這邊可以貼上語法<b>不會被處理掉</b> </pre>

用php 直接執行linux指令

有些時候我們需要在網頁上就直接執行一些linux的指令讓事情變的比較簡單。
例如檔案大量複製刪除之類的指令,如果用php的語法下去寫有點累,但是linux指令只需要簡單一行。這時候我們可以直接使用exec()指令來執行系統指令。

用法:


$com ='系統指令';
exec($com);

執行後不會回傳任何訊息如果有需要回傳訊息可以用system()這個指令

參考資料
http://www.php.net/manual/en/function.system.php
http://www.php.net/manual/en/function.exec.php

php 判斷檔案是否存在 file_exists()

我們在做檔案上傳的時候有的時候會需要檢查一下是不是正確上傳到我們要的地方
或者是我們需要檢查伺服器中的某的檔案是不是存在的,這個時候就要用file_exists()這個指令

file_exists()用法:

file_exists(檔案路徑)

回傳的值是true 或 false所以我們可以直接用if去做這樣的判斷
if(file_exists(檔案)){
  echo '檔案存在';
}else{
 echo '檔案不存在';
}


需要注意的一點是:這個指令只支援本地端路徑,沒有辦法用在遠端路徑喔