目前分類:php (48)

瀏覽方式: 標題列表 簡短摘要
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帳號其實除了yahoogmail之外還有很多,如PChome就有提供免費的mail帳號申請服務,不過也因為yahoogmail走的都是加密的smtp 465 Port,所以PHPmailer若無openssl的加持,是無法透過yahoogmail寄信的,不過PChome就不同了,因為它走的是標準未加密的smtp 25Port,所以我們可以使用PHPMailer通過PChomeSMTP驗證寄信,以下為相關步驟:

優購雲端科技 發表在 痞客邦 留言(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) 人氣()

«123