YOGO在之前的
「用PHP寄MAIL的方法」中就有提到
「使用PHPMailer通過驗證的SMTP寄信」及
「使用PHPMailer透過Gmail 的SMTP 發信」,而這篇算是
「線上發信如何通過驗證的SMTP(使用PHPMailer)」的補充說明。
一般來說前一篇
「用PHP寄MAIL的方法」中提到的
「使用PHPMailer通過驗證的SMTP寄信」及
「使用PHPMailer透過Gmail 的SMTP 發信」就足以應付一般使用者的需求,而這篇文章適合以下的情況:
1.ISP所提供的MAIL被停權,無法使用。
2.租用主機但無法使用mail函式(不過基本上這不太可能),且無openssl可以使用,無法利用Gmail的SMTP發信。(關於PHP安裝OPENSSL的方法,請參考這篇文章)
3.因為其他因素,需使用外部SMTP寄信。(不過會有什麼因素YOGO倒也真的想不出來)
其實免費的mail帳號其實除了
yahoo跟
gmail之外還有很多,如
PChome就有提供
免費的mail帳號申請服務,不過也因為
yahoo跟
gmail走的都是
加密的smtp 465 Port,所以
PHPmailer若無
openssl的加持,是無法透過
yahoo或
gmail寄信的,不過
PChome就不同了,因為它走的是
標準未加密的smtp 25Port,所以我們可以使用
PHPMailer通過
PChome的
SMTP驗證寄信,以下為相關步驟:
優購雲端科技 發表在 痞客邦 留言(1) 人氣()
因為php5新增了時區的觀念,所以一般來說若沒有調整設定的話,會以格林威治的標準時間為準,因為台灣與格林威治的標準時間有8小時的時差,所以若沒有調整設定的情形下使用date()函式,會發現怎麼會慢了8小時,原因就在這裡,而解決的方法如下:
1.將php.ini檔中的時區設定如下
[Date]
;Defines the default timezone used by the date functions
date.timezone = "Asia/Taipei"
;date.default_latitude = 31.7667
;date.default_longitude = 35.2333
優購雲端科技 發表在 痞客邦 留言(0) 人氣()
若果 Database 內有 100 個字,但我想顯示時只顯示 50 個字之後加三點,請問點寫呢?
用字串切割, 抓前 50 字 再補 . 就好啦 $aa = substr($ori_string, 0, 50 ) . "..." ;
前面老兄的方法就很快了...只是會有一點點危險...
萬一在前50個字內出現了一個英文字....
那切斷點就會給你好幾個亂碼囉
這方法是囉唆了一點....
但會保證你的安全...
$num=50;
優購雲端科技 發表在 痞客邦 留言(0) 人氣()
檢查 php.ini 檔中的 display_errors 的設定是否為
display_errors = on
如果是的話把它改成
display_errors = off
然後再去 run 看看原本有問題的 PHP 程式,就不會再出現錯誤提示;我說明一下這個設定的用意好了,當 display_errors = on 時若 php 的程式有問題會把錯誤訊息顯示在瀏覽器供開發人員參考,這在開發時很有用,但當網站對外開放時,一般都會把這個功能關閉,因為php若遇嚴重錯誤時不管你有沒有開啟這個功能它都會顯示錯誤訊息,若遇不影響並中止php本身運行的小錯誤時,關閉這個功能並不會影響到 php 本身的運行,所以正式上線的 php 網站都會將這個功能關閉。
優購雲端科技 發表在 痞客邦 留言(0) 人氣()
今天在Yahoo知識+看到一則討論,是關於
"php如何把gmtime()的秒數譯成Y-m-d H:i:s"的問題(
http://tw.knowledge.yahoo.com/question/question?qid=1009081801890),在討論中原發問者希望能將秒數轉換成data函式中的Y-m-d H:i:s格式,其實這部份並不難,php的date函式原本就有提供2個參數可供使用者使用,若省略第2個參數,date函數則會以server所在的時區的現在時間為基準,依所指定的格式輸出,而一般php初學者都只用第一個參數來輸出現在的時間格式,而不知道有第2個參數可用,所以很多初學php的朋友都以為date函式只能取的目前的時間,其實date函式的第2個參數就是要輸出格式化的時間參數,也就是說若有填第2個參數則date函式會依所填的時間去作指定的格式輸出,而非輸出現在的時間,以下為範例;
範例1:
echo date("Y-m-d H:i:s");
會輸出
現在時間(2009-08-18 14:48:52)
範例2:
優購雲端科技 發表在 痞客邦 留言(0) 人氣()
今天在Yahoo知識+看到一則討論,是關於php如何十進位轉二進位的問題(
http://tw.knowledge.yahoo.com/question/question?qid=1609073000065),在該討論中原提問者希望最終結果可以以1~255的十進位轉換成8位數的二進位,在不足8位數的情況下能夠自動補齊,如 "12" → "00001100"。
在原討論中原提問者希望能不用php內建函數來解決這個問題(真是奇怪的想法,有現成的含式不用,偏要重寫),所以得到各方高手以下的幾種寫法解答:
解法1:
while ($c >= 1){
$c = $a/$b;
優購雲端科技 發表在 痞客邦 留言(0) 人氣()
如何將server端的檔案刪除,也就是刪除資料後,一併將該相關檔案刪除:
舉例:index.php、photodel.php兩個網頁
資料庫欄位舉例:p_id(自動編號、主鍵)、p_name(紀錄檔案名稱及副檔名)
存放檔案的路徑:photo/
優購雲端科技 發表在 痞客邦 留言(0) 人氣()
很多朋友都在問,要如何一次刪除複數檔案,小弟看一直無人寫教學,所以野人獻曝一下,於是寫了一篇PHP刪除複數檔案的教學,與各位大大分享討論,廢話不多說,馬上進入主題;我這個範例資料庫名稱為"delfile",資料表名稱為"file_id",欄位1名稱為"del_id"(主鍵、自動編號), 欄位2名稱為"del_photo"(用以記錄檔案名稱及副檔名),而圖片檔案放在"photo"這個資料夾底下。
步驟1:新增一個資料集,查詢" file_id" 資料表中的檔案資料。
步驟2:新增一個核取方塊欄位,名稱為"del_id[]",核取值為資料庫的"del_id"欄位 (主鍵)。註:因為刪除複數檔案需用到陣列,而"[]"在PHP中代表的意思就是陣列,所以名稱為"del_id[]"。
步驟3:設定表單接收的頁面,範例是"ok_del.php"。
優購雲端科技 發表在 痞客邦 留言(1) 人氣()