發表文章

目前顯示的是有「PHP」標籤的文章

PHP郵件亂碼問題

許多的 郵件管理軟體 (mail 2xxx之類)預設都是 大五碼 ( BIG5 ),但阿批所撰寫的PHP,通常都是搭配多國語言 UTF-8 編碼,所以在寄送到此類郵件軟體的收件夾內時,時常收到大伙們來敲門訴說收到一堆火星文( 亂碼 ),怎麼辦呢?阿批今天來解謎: 在php撰寫可用下列函式來進行轉換: mb_convert_encoding("要轉換的文字'","big5","utf-8"); 而在php的mail函式中,在header標頭檔也要加入: Content-Type: text/plain; charset=big5"; 只要兩步驟,就足以應付大部分的大五碼郵件軟體嚕!

PHP宣告時的

這是阿批今天在處理就主機中的資料所遇到的問題,有些寫法是以 short_open_tag = On 這是代表是否要開起簡易(簡短)開始標籤,如果你懶得一個一個檔案開起來加php,就先這樣做吧,不過如果遇到其他語言也是以

PHP 5.3 到底在搞甚麼東西

圖片
這個問題困擾阿批很久了,尤其升級PHP5.3之後,原本沒有問題的網頁都出現了以下警告訊息: " Assigning the return value of new by reference is deprecated in XXX.php " 有個快速的解決方式就是把版本降級回去~OMG~那可能就無法用PHP5.3的新修正功能。 於是乎,研究了一下,其實解決方法很簡單。 1.找到出現警告訊息的行數 2.例如我找到引起警告的程式是: $widget =& new Pager_HtmlWidgets($this); 3.拿掉&符號:$widget =new Pager_HtmlWidgets($this); 4.大功告成謝謝大家! 以下再補充幾點網路上所收集到的資訊: PHP5的物件複製是採用引用(Reference)的方式; 若不採用引用方式,則需在複製時加入關鍵字:clone; 若在複製的過程中,同时要變更某些屬性,則增加函數_clone();

網頁內嵌編輯器(Fckeditor+Filemanager),讓你的網頁圖文並茂

今年的天氣不曉得是怎麼搞得~去大陸沒遇到 下雪 ,回國隔天就下了... 接著過年一整天都沒出去,因為都在 下雨 T_T.... 然後....阿批也有CASE要趕,所以只好....也乖乖待在家做CASE... anyway....還是得做,就算 世界末日 也要做完阿(誤)..... ----------我是言歸正傳的分隔線-------------- 越來越多網站後台都會須要用到編輯器,一來是可以讓一些使用者更方便的編輯,二來有些人不想要寫程式,可以用編輯器蒙混一下(XD),再來就是.....阿批拖稿拖太久~連 老師 都看不下去了(誤) 這篇文章要介紹的是阿批最近使用的一款編輯器- Fckeditor 這款編輯器目前已有更新的強化版-Ckeditor...但是,卻沒有阿批想要的功能-圖片上傳 Orz,讓原本使用Ckeditor的阿批,瞬間被丟到垃圾山(喔~其實是心情跌到谷底拉~)...其實有第三方作者寫的程式一樣可以支援上傳,但只能做簡易的上傳,至於真的需要上傳的朋友可能還是不夠用,因此這篇文章還是以Fckeditor 無痛內嵌 為主! 雖說Ckeditor是較新的版本,但對像阿批這種 其實是跟 一般的 Fckeditor 使用者沒有甚麼差別。而基於想要更方便的(其實是懶惰...)使用圖像上傳功能,於是download了Fckeditor來玩玩.... Fckeditor下載點 官方網站 Fckeditor跟Ckeditor都是同一家公司的,所提供的原始碼都是 免費的 。而雖然Ckeditor較新且功能完整,但使用Fckeditor的網站還是佔多數(當然要尋求幫助也比較有門路)。可以先至官網玩玩看 Demo 的版本,但Demo版以Ckeditor為主, (上面的上傳圖片功能是騙人的:P,下載後不會有) 。 首要工作:認識一下會用到的檔案吧! fckconfig.js :工具列設定、外觀設定...等等都靠它! fckeditor.php :有提供php用的呼叫函式和功能。因為阿批是寫PHP,當然就要找它來幫我呼叫嚕! fckeditor/editor/filemanager/connectors/php/config.php :圖片上傳的設定檔,稍後用到 傳送及接收參數的頁面:放心,這邊阿批會寫一點範例給大家先玩玩! 主要是以上幾個檔案就可以很簡單的設定Fckedito...

PHP -利用mkdir函數建立中文資料夾無亂碼方案

因為自己龜毛,想要在家族的網站上設立一個為使用者 開啟個人資料夾 的功能,因為這樣可以讓使用者方便將自己的東西直接上傳到資料夾內(先前的網站必須還要由管理者移動),管理者才不用 事後移來移去 (其實管理者很懶惰XD) 於是乎 這種想法產生就也伴隨著 無止盡的殘忍後果 正當我很高興的 mkdir("0777","中文") 給它時... 蝦米,是亂碼!!!!!! 好吧,既然他誠心誠意的出現了 我也要大發慈悲的解決他!!!! 我找阿找,找遍怕太太(這大概只有老一輩玩過BBS的人才知道這個名稱吧~)和X學園,不是建議用英文就是講一堆廢話然後叫你不要有這個想法(這我要特別提出來講是因為,如果有一天你老闆同樣交代了這件事,你會沒試過就要跟他說沒辦法嗎?雖然並非老闆要求,但這種 不敬業 的態度我做不到) 於是乎有位鄉民 暗丟 水球給我,跟我講了另一個方法可試試看,真是太感謝了!!!! 我就去找了 iconv 來玩玩 結果,壓呼!!!!壓倒性的勝利....喔不,是暫時解決了這個問題!!!! 好,於是我高興到想要將他PO出來,因為我真的找不到這個問題的解決方案,而且我有一些也要說明阿~~~~ 來來來,做法是這樣 $dir_name=iconv("utf8", "big5", $dir_name); //將資料夾名稱編碼為big5,utf8是我寫程式所用的編碼 $path="upload/reports/$dir_name"; //路徑,我習慣額外設定 mkdir($path,'0777'); //建立資料夾!!!! 就是這樣~~喵~~~ 各位看倌不曉得看這麼多廢話後,你有沒有豁然睜大雙眼的感覺!!?

Smarty - 陣列用法

圖片
這幾天忙CASE忙到 快瘋掉 ,但是有發現一些不常用的東西,整理出來 避免忘掉 吧!!! 這幾天做問卷統計,卻發現,統計總筆數的時候用 foreach 會照問卷數跑許多迴圈 於是乎,查了一下 smarty手冊 ,發現其實要print陣列有其他的方法 假如說我的陣列是 二維以上 $array[first][second]; 那麼當assign $array後,在template要如何 取出 ? 只要用 {$array.first.second} 即可!!! first及second可以跑 迴圈 直接填入0-N的數字!妙吧!!

PHP 字串間加入特殊符號

最近改CASE改到 焦頭燥耳 .. 但是也不能因此而 冷落 掉我的BLOGGER~ 來分享一下PHP的一些 延伸用法 這次改CASE遇到廠商要求把行動電話號碼 0912345678 改成 0912 - 345678 的問題 不管是針對電話號碼還是其它的格式,使用 substr函數 通通可以 輕鬆搞定 $str="0912345678"; //欲開刀的電話號碼字串 $split= "-"; //要插入的特殊符號 $fin_str = substr($str,0,4).$ split .substr($str,4); //字串前4個字+特殊字符+字串第4個字元後的字串 echo $fin_str; //叫出來看看!!!如果怕許功蓋可用 htmlspecialchars 再輸出 簡單的用法就如上所述,尚有其他技巧,等這週忙完再來PO!!!

PHP轉存為EXCEL

這大概是用到爛的技術,但是,最近我在做另一個CASE時,卻遇到UTF8邊碼的問題,怎麼辦哩,來試試以下方法.... 在一開始的地方,用很熟悉的header.. header("Content-Type: application/octetstream; name=test.xls; charset=UTF-8"); 接下來是大家耳熟能詳的內容 header("Content-Disposition: attachment; filename=test.xls;"); header("Content-Transfer-Encoding: binary"); header("Cache-Control: cache, must-revalidate"); header("Pragma: public"); header("Pragma: no-cache”);; header("Expires: 0"); 重點來嚕,在結尾的地方,給他來個下馬威: echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; CHARSET=UTF-8\">"; 因為以前用的編碼是針對 Big5 ,而EXCEL可以對Big5直接進行編碼的動作,但是遇到UTF-8卻像個害羞的小姑娘,甚麼事都不能做(... 微軟這個小姑娘 ...),所以如果改用UTF-8的捧油,匯出表單的部分可以試試這個方法,當然,網路上還有其他用 fopen() 函數來做的檔案會出方式,大家也可以參考!

Wamp原來PHP版本有改

今天異想天開的把wamp更新版本 卻意外發現網頁開啟來都給我出現: Use of undefined constant... 耶,發生什麼事...... 雖然頁面照常執行,但還是股溝一下~看了一些資料,大概了解是PHP版本更新後帶來的問題,解決方法如下: 1.開啟你的 php.ini 2.請找出 error_reporting 這一行 3.改成 error_reporting=2039 (預設是E_ALL,改之前可以先備份) 好,大功告成,原本的網頁上都沒出現錯誤了!!!

PHP 發 mail

圖片
幫老姐弄公司網站的同時,發一下有用到的PHP funciton php有個mail funciton,只要一行,就可以幫你輕輕鬆鬆寄出信件 mail('to', 'subject', 'msg'); to:收件者 subject:主旨 msg:要傳遞的內容 另外還看到有些延伸... mail('to', 'subject', 'msg', 'header'); Header:標頭,也就是寄件者 ,這邊試過,如果沒有這一行,那麼會變成系統域設的Send From預設mail,建議還是設一下吧!! 到此還有一個重點要說明,當我們寫完一封信,總是要有一個郵筒蒐集你的信,再由郵差傳送到收件人的信箱,這時候就是 SMTP 出場的時候了!!! 一般來說,如果您是使用外面一建安裝到底的Web Server(EX:WAMP、APACHE),那麼其實只要在 php.ini 將SMTP設為: localhost(預設就是localhost,如果有需要再做更改) ,並且把 php extension 理的 php_smtp mudule 打開,就可以享受寄送郵件的功能。在此提醒各位客倌,再更改任何設定檔後,請養成習管 → Restart Service 建議:如果為了防止一些無聊人士把網站當跳板發垃圾信,可以使用JS來撿查該郵件是否為可用,搭配圖片認證,可以有效防止收到垃圾信件。