顯示具有 PHP 標籤的文章。 顯示所有文章
顯示具有 PHP 標籤的文章。 顯示所有文章

20120626

PHP郵件亂碼問題

許多的郵件管理軟體(mail 2xxx之類)預設都是大五碼( BIG5 ),但阿批所撰寫的PHP,通常都是搭配多國語言UTF-8編碼,所以在寄送到此類郵件軟體的收件夾內時,時常收到大伙們來敲門訴說收到一堆火星文(亂碼),怎麼辦呢?阿批今天來解謎:


在php撰寫可用下列函式來進行轉換:
mb_convert_encoding("要轉換的文字'","big5","utf-8");


而在php的mail函式中,在header標頭檔也要加入:
Content-Type: text/plain; charset=big5";

只要兩步驟,就足以應付大部分的大五碼郵件軟體嚕!

20120506

PHP宣告時的

這是阿批今天在處理就主機中的資料所遇到的問題,有些寫法是以

short_open_tag = On


這是代表是否要開起簡易(簡短)開始標籤,如果你懶得一個一個檔案開起來加php,就先這樣做吧,不過如果遇到其他語言也是以

20120315

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.大功告成謝謝大家!
以下再補充幾點網路上所收集到的資訊:
  1. PHP5的物件複製是採用引用(Reference)的方式;
  2. 若不採用引用方式,則需在複製時加入關鍵字:clone;
  3. 若在複製的過程中,同时要變更某些屬性,則增加函數_clone();


20100225

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

今年的天氣不曉得是怎麼搞得~去大陸沒遇到下雪,回國隔天就下了...

接著過年一整天都沒出去,因為都在下雨T_T....

然後....阿批也有CASE要趕,所以只好....也乖乖待在家做CASE...

anyway....還是得做,就算世界末日也要做完阿(誤).....

----------我是言歸正傳的分隔線--------------

越來越多網站後台都會須要用到編輯器,一來是可以讓一些使用者更方便的編輯,二來有些人不想要寫程式,可以用編輯器蒙混一下(XD),再來就是.....阿批拖稿拖太久~連老師都看不下去了(誤)

這篇文章要介紹的是阿批最近使用的一款編輯器-Fckeditor

這款編輯器目前已有更新的強化版-Ckeditor...但是,卻沒有阿批想要的功能-圖片上傳 Orz,讓原本使用Ckeditor的阿批,瞬間被丟到垃圾山(喔~其實是心情跌到谷底拉~)...其實有第三方作者寫的程式一樣可以支援上傳,但只能做簡易的上傳,至於真的需要上傳的朋友可能還是不夠用,因此這篇文章還是以Fckeditor無痛內嵌為主!

雖說Ckeditor是較新的版本,但對像阿批這種
其實是跟一般的Fckeditor使用者沒有甚麼差別。而基於想要更方便的(其實是懶惰...)使用圖像上傳功能,於是download了Fckeditor來玩玩....

Fckeditor跟Ckeditor都是同一家公司的,所提供的原始碼都是免費的。而雖然Ckeditor較新且功能完整,但使用Fckeditor的網站還是佔多數(當然要尋求幫助也比較有門路)。可以先至官網玩玩看Demo的版本,但Demo版以Ckeditor為主,(上面的上傳圖片功能是騙人的:P,下載後不會有)

首要工作:認識一下會用到的檔案吧!

  • fckconfig.js:工具列設定、外觀設定...等等都靠它!
  • fckeditor.php:有提供php用的呼叫函式和功能。因為阿批是寫PHP,當然就要找它來幫我呼叫嚕!
  • fckeditor/editor/filemanager/connectors/php/config.php:圖片上傳的設定檔,稍後用到
  • 傳送及接收參數的頁面:放心,這邊阿批會寫一點範例給大家先玩玩!
主要是以上幾個檔案就可以很簡單的設定Fckeditor!再來就開始我們的Fckeditor簡易設定之旅!
1.打開你要置入的php頁面,加入:

include_once(“./fckeditor/fckeditor.php”) ; //呼叫fckeditor設定檔,也可把此檔放在你的include資料夾方便分類
$editor = new FCKeditor(‘fck_editor′) ; //new一個物件來用,要傳送的變數名稱,可自行修改
$
editor ->BasePath = ‘./fckeditor/’ ; //Fckeditor的路徑
$
editor ->ToolbarSet = 'Default' ;
$
editor ->Value = ‘Hello World’ ; //要顯示在編輯器內的預設文字,你可以把資料庫抓出來的內容變數丟在這邊。
$
editor ->Width = ‘500′; //編輯器寬度
$
editor ->Height = ‘400′; //編輯器高度 "; ";

2.因為要有參數傳送的路徑,所以我們給個Form,直接承上接續(方法不一定要照此,可自行變化)

echo "< /form action="接收的頁面路徑" method="post">
"; //建立表單(因網至設定問題,直接複製請把form前的斜線(/)拿掉

$editor ->Create() ;
//建立FCKeditor編輯器的物件
echo "< /form>
";
//結束form

3.以上程式碼已可顯示一個編輯器以供使用,但現今的網站都有搭配後端資料庫,故以下提供簡短的接收DATA的程式碼做接收示範
$content = $_POST['fck_editor'];
//接收編輯器的內容變數,因編輯器所Create時的變數為第1步驟程式碼所設定,故需一至(本例以fck_editor為變數名稱)

設定完以上的程式碼,就可以先玩一下編輯器了~OK~大功告成!!!總算........不對,還有圖片上傳功能啊!!!!
別急著走開~以下我們要介紹上傳圖片的設定,當然也是非常無痛的設定!

在首要準備工作的第三個檔案,位於
fckeditor/editor/filemanager/connectors/php/內,因阿批是使用php,所以就進入php資料夾來設定(若是其他語言的使用者則可以選擇其他的程式語言資料夾),內有一config.php檔案,打開並設定:

$Config['Enabled'] = true ; //預設是關閉的,只要將它設為true就可以開啟圖片上傳功能。

其他的設定在config檔案裡都有說明,路徑、擴充套件等等,就讓大家自己摸摸啦!!不然就等下次的教學文(誤!)OK~這次真的是大功告成!!!可以再偷懶一陣子了~XD

20090519

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'); //建立資料夾!!!!

就是這樣~~喵~~~

各位看倌不曉得看這麼多廢話後,你有沒有豁然睜大雙眼的感覺!!?

20090428

Smarty - 陣列用法


這幾天忙CASE忙到快瘋掉,但是有發現一些不常用的東西,整理出來避免忘掉吧!!!

這幾天做問卷統計,卻發現,統計總筆數的時候用foreach會照問卷數跑許多迴圈

於是乎,查了一下smarty手冊,發現其實要print陣列有其他的方法

假如說我的陣列是二維以上

$array[first][second];

那麼當assign $array後,在template要如何取出

只要用

{$array.first.second}即可!!!

first及second可以跑迴圈直接填入0-N的數字!妙吧!!

20090426

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!!!

20090120

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()函數來做的檔案會出方式,大家也可以參考!

20081214

Wamp原來PHP版本有改

今天異想天開的把wamp更新版本

卻意外發現網頁開啟來都給我出現:

Use of undefined constant...

耶,發生什麼事......

雖然頁面照常執行,但還是股溝一下~看了一些資料,大概了解是PHP版本更新後帶來的問題,解決方法如下:

1.開啟你的php.ini

2.請找出error_reporting這一行

3.改成error_reporting=2039 (預設是E_ALL,改之前可以先備份)

好,大功告成,原本的網頁上都沒出現錯誤了!!!

20080612

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來撿查該郵件是否為可用,搭配圖片認證,可以有效防止收到垃圾信件。

你還在幫別人打造舒適圈?

 師不順路,不好為人師,談何容易.... 人總是在為自己的做法找"理由",找一個漂亮的包裝,找一個可以說服人的方式,找一個立足點....然而,這個為自己所做的一切,往往是一個自私的隱性表現,因為你要達到的就是"滿足"自己。 但要如何滿足自己...