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

2011年11月27日 星期日

PHP教學-MySQL中文亂碼的原因

*mysql中文亂碼的原因
mysql 會出現中文亂碼的原因不外乎下列幾點:
→ mysql server本身設定問題,例如還停留在 latin1
→ mysql table 的語系設定問題(包含 character 與 collation)
→ 客戶端程式(例如 php) 的連線語系設定問題

mysql 4.1 及之後的版本在語系方面增加了許多功能,它可以設定語系的層次從最底層的 server, database 到單一 table, column, connection 都可以設定,而除了語系之外,還可以指定搭配不同的 collation(校對),所以組合百百種,只要一個錯了就難逃亂碼的命運。
進phpmyadmin找到可輸入 sql query的畫面,然後鍵入:
show variables like '%character%';
這句話會顯示目前資料庫使用的語系設定,一般國外的網站或剛裝好的 mysql 4.1預設都是 latin-1。

[新增資料庫]
如果你熟悉 phpmyadmin 的操作,在畫面上就可以選擇建立新 database 要用的語系,
charset 請選擇 UTF-8 Unicode (utf8)
collation 請選擇 utf8_general_ci (ci 代表 case insensitve 大小寫沒差)

[修改資料庫]
改 database語系,同樣在 phpmyadmin 的query畫面鍵入下面兩行:
alter database myblog
character set utf8;

前面曾經提過,mysql的語系設定是多層次的,前面我們把database與table的語系都設定正確,但程式與mysql連線時的語系則是由 connection 來決定,這部份就要使用程式碼
mysql_query("SET NAMES 'utf8'");
這句話會同時設定 client, results, connection三者使用的語系為 utf-8。
最後檢查是否全部改成 utf-8
show variables like '%character%';
此時你應該會看到大部份欄位都是utf-8了,除了 server 這項之外,如果是用別人的 hosting 主機,就沒法兒改這部份,但平常做案子時大部份都可以直接控管mysql,此時就可以用 my.ini 設定:
[mysqld]
default-character-set=utf8
告訴mysql server啟動時要用 utf-8即可。

PHP 簡介/歷史/特點

為什麼要選擇PHP ?

競爭對手﹕ASP,mod_perl,JSP
  用於實現交互式動態網頁的技術有好多,其中CGI又稱通用網關接口(Common Gateway Interface),是外部程序和WEB伺服器之間的標準編程接口,但是CGI程序帶來的缺點實在太多;而Perl很好地解決了CGI中的問題,被用來驅動複雜的WEB技術;微軟的ASP(Active Server Pages)的出現,以它容易上手、輕鬆編寫程序和微軟件強有力的支持後盾使得ASP一下子成了許專業編程人員和非專業編程人員的寵兒;Middle ware和Allaire的Cold Fusion是另一種解決方法,並且Cold Fusion有一個已證實可靠的搜索引擎組件;JSP 是Sun公司推出的新一代站點開發語言等等。有這麼多的動態WEB技術,也許你會問﹕“為什麼我要選擇PHP呢?”
在回答這一問題之前,讓我們先來看看ASP,PHP和JSP之間的優缺點。

1. 關於ASP
ASP 由於其簡單功能實用等方面受到廣大朋友的喜歡,再加上MS的強有力支持,可以說是時下作站點最為流行的語言之一,他借助MS的Com+ 技術,幾乎可以實現在C/S 能夠實現的所有功能,可以說確實具有相當的競爭力。ASP的代碼實現也很簡單,MS 提供的InterDev 在RAD 的基礎上,使ASP 的開發一夜之間火遍了大江南北。但是他的缺點是,由於MS 長久以來的霸道作風,他只能執行在MS的平台上,因此在關鍵性的應用上使人難以輕易接受。

2. 關於JSP
  JSP 是Sun公司推出的新一代站點開發語言,他完全解決了目前ASP,PHP的一個通病--腳本級執行(現在PHP4 也已經在Zend 的支持下,實現編譯執行).Sun 公司借助自己在Java 上的不凡造詣,將Java 從Java 應用程序 和 Java Applet 之外,又有新的碩果,就是Jsp--Java Server Page。Jsp 可以在Serverlet和JavaBean的支持下,完成功能強大的站點程序。
  據我所知,JSP基於Java,因此Java程序員可以輕鬆開始編碼。ASP只是一個一般的引擎,具有支持多種語言的能力,不過默認的並且是最常用的還是VBScript。mod_perl與Perl一樣強大,只是更快一些。
  對於ASP、JSP、PHP等,到底哪種語言更好?不同的人有不同的看法。不過有一點我們必須要明確的﹕對於ASP、JSP等,你是否清楚購買它們會有多昂貴以及它們需要多麼昂貴和強大的硬件。如果你有什麼中立的觀點(比如說沒有被SUN和Microsoft的百萬美金所影響),請順便通知我。

3. 關於PHP
  PHP 是秉承Linux 的GNU 風格,借助與源碼公開,使他迅速成為世界上目前應用最為廣泛的站點製作語言之一。借助與C++的形式,引用類的概念,使得代碼的可重複性應用便的異常簡單。加上他和Linux,Apache 和MySql 的緊密配合,關鍵性的應用也沒有問題(有名的Sina就 是采用Php)。同時,PHP第四代Zend(PHP4)的核心引擎正式版也已經發布了,整個程序的核心得到了大幅度的改進,讓PHP程序的執行速度變得更快。PHP在最佳化之後的效率,已比傳統CGI或者ASP等程序有了更好的表現。而且正因為PHP是免費的,因此任何人都可以訪問PHP WEB站點,下載完整的源代碼。更重要的是﹕用PHP編寫的代碼執行起來會更快,能實現同樣功能的PHP代碼,不用改變就可以在不同的WEB伺服器上、不同的操作系統下執行。就憑這一點,你就已經有足夠的理由選擇PHP。

本文轉貼自:伊莉論壇

2011年11月26日 星期六

PHP線上投票系統-轉貼教學-分享2U

轉貼自 http://www.minwt.com/?p=634



最近因工作上的需求,多多少少得接觸到PHP,而PHP的語法結構有點亂,但不可否認的事,PHP的資源到是不少,也相當容易取得,最近正好想在部落格放個投票系統,雖然有不少的免費投票系統,如:blogpoll、polldaddy,功能到是不錯用,但按鈕上文字還是無法修改成中文,有些美中不足。

於是上網找了Advanced Poll,很巧的是竟然也是用PHP開發,於是只好硬著頭皮,便研究一下該怎麼使用,也順便練習一下PHP,好在有男丁格爾的大力相助,再加上梅干桑的胡搞蝦搞,終於把它給搞定了,接下來就簡單的說明一下安裝步驟,以及要如何嵌入到個人的部落中。

版本:Advanced Poll 2.02+ 男丁格爾&梅問題強化版1.0
強化項目:
1. 中文語系製作
2. 透過網址設定投票編號、版型、顯示bar條長度
3. 選項可加入圖片
4. 結果預覽


Step1
由下方下載投票系統,解壓並上傳到支援php的空間。
http://cdn.minwt.com/download/php/pollphp.zip


Step2
for Liunx平台:
若是Linux主機,將mwtvote檔案屬性權限設為777,讓該資料夾為可寫入的權限。




for Window Plesk平台:
若是Window主機,將mwtvote中的IIS User權限設為完全控制,讓該資料夾為可寫入的權限。



PHP教學-用PHP發送mail

用來傳送 e-mail 的描述語言程式(Script)可說是網站上最常見的程式之一。雖然它很單純,但是在某些時候,它卻往往對程式設計師們造成極大的困擾。在 PHP 中有一個函式叫做 mail(),只要有收信者名稱以及訊息內容,就可以拿來傳送訊息。但是你還是需要針對 mail()做某些調整,才能讓mail()為你完成你想做的事。
首先,要讓 mail()能夠運作,你必須先有一個 SMTP 伺服器,好讓你的 PHP 連上去。雖然這個伺服器在電子郵件程式中佔有極其重要的地位,大部分的人還是對它一知半解。在這篇教學指南裡,我們會為你揭開 SMTP 的神秘面紗,並且同時解說關於使用 PHP 傳送電子郵件的某些常見問題。其中精采的內容還包括了:如何以迴圈的程式敘述,讀取電子郵件住址名單,同時針對其中的收件者一一傳送郵件,包括純文字格式以及 HTML 格式的郵件等等。
了解你的 SMTP 伺服器SMTP 是 Simple Mail Transfer Protocol 的縮寫,而 SMTP 伺服器則是透過執行該通訊協定而傳送電子郵件的電腦。基本上,執行通訊協定指的是:如果你使用的是非 Windows 作業平台,執行的是 Sendmail 或 Qmail這類的電子郵件軟體。而如果這部機器使用的是 Windows 作業平台,那麼 SMTP 服務已經包括在 Windows NT Service Pack 中,或者內建在 Windows 2000 裡面,而且,這項服務通常就是正在執行中的電子郵件服務。
這並不是說,SMTP 軟體就只有那幾種,只是它們是最被廣為使用的。如果你的網站是 ISP 的虛擬主機(Vitual hosting)套件的一部分,SMTP 服務應該就已經安裝在主機上面了。如果你是位系統管理者,負責管理某台放在 ISP 或公司機房的專屬主機(Dedicated machine)的話,那麼你很可能會需要在那部機器安裝某種 SMTP daemon,特別用來處理網站伺服器的電子郵件傳遞。
然而,如果你只是一個單獨的使用者,只有一套網站伺服器開發平台在你的個人電腦上面,你可能沒有在你的機器上安裝 SMTP。這裡有個非常簡單但是精確的準則: 如果你是個 Windows 使用者,而你從來未曾聽過 SMTP 伺服器,那麼你就沒有安裝 SMTP。若果真如此,你有兩個選擇:安裝, 設定,並維護一個 SMTP 伺服器(如果你不知道那是什麼,我並不鼓勵你這樣做)或者直接使用已經在你手邊的東西。
「我沒有安裝,怎麼會說在我手邊呢?」你可能會這樣問。嗯,如果你的電腦是透過撥接上網的(或 DSL 或者 cable),你可以直接使用你的 ISP 的外寄郵件伺服器(outgoing mail server)。例如,如果你的開發平台是 Windows 98,以及一台 56Kbps 的數據機,並透過 EarthLink 上網, 那麼你可以用 mail.earthlink.net 當作你的 SMTP 伺服器。不管你使用的是哪一種電子郵件客戶端軟體 (Eudora,Outlook,Netscape Mail 等等),你的外寄郵件伺服器都可以在 PHP 程式碼中,指定為 SMTP 伺服器。要訣在於,你要告知 PHP 這件事情。
在 PHP 的主要設定檔,php.ini 中,有一些 directive 是你必須去設定,這樣一來 mail() 函式才能夠使用。在更改那些設定以前,你先看看它們是什麼。使用 phpinfo() 函式,可以顯示你的系統目前的設定, 做法是,建一個檔案,包括下列文字:
<? phpinfo() ?>
將檔案存起來,放在你的網站伺服器的文件根目錄中。然後用你的瀏覽器去看這個檔案。你應該會看到一個編排良好的現有設定列表。在這裡,你要注意的設定選項為:
SMTP sendmail_from sendmail_path 如果你用的不是 Windows,你只須擔心 sendmail_path directive。如果你用的是 Windows,你就要注意先前兩個 directive。
如果你用的是 Linux 或其他 Unix 變種系統,sendmail_path 應該差不多是這樣子設定的:
sendmail_path = /usr/sbin/sendmail
或者,如果你用的是 Qmail:
sendmail_path = /var/qmail/bin/sendmail
在這個 directive 裡面,你也可以設定某些 flag 來指明你的 queuing 做法,或者是用來明確的寫出你的 Return-Path 標題,就像這樣:
sendmail_path = /usr/sbin/sendmail -t -fyou@yourdomain.com
如果你不是 Windows 使用者,你所需要做的就那麼多了。

PHP教學-PHP 讀取 excel 的方式

使用 PEAR 的 Spreadsheet_Excel_Writer
http://pear.php.net/package/Spreadsheet_Excel_Writer/download
個人是覺得還不錯用,但他有一個BUG
就是當excel 資料一多時,就會發生錯誤。
撈出來的資料會亂掉。

但有解決的辦法
http://blog.teatime.com.tw/1/post/111
大家早晚會用到讀取excel 的時候
所以分享給大家

本文轉貼自:http://freeshare2u.com/

PHP get_browser 取得瀏覽器資訊

今天來介紹一個PHP函式  - get_browser
可使用此函式取得瀏覽器的資訊,但是需要設定browscap.ini

首先
先到 http://browsers.garykeith.com/downloads.asp 下載 browscap.ini
請選擇 php_browscap.ini 這個檔,再來打開 php.ini
搜尋找到 browscap,設定檔案路徑:如下

[browscap]
browscap = C:/module/php_browscap.ini

儲存php.ini之後記得重啟 apache

接著,寫一個簡單的PHP來使用看看
get_browser可傳入兩個參數:
第一個參數 user agent
第二個參數 是否回傳陣列 預設是 false (會回傳一個物件)

如下面範例:
get_browser(null, true);
第一個參數可不傳 所以給null
第二個參數給 true的話會回傳一個陣列

<?php
$browser = get_browser(null, true);
echo $browser['browser'].$browser['version'];
?>
輸出結果:IE8.0

有更多的參數可以用print_r 來看一下,可以發現也可以分析作業系統

2011年11月21日 星期一

Gscripts.net - 免費PHP程式的藏寶庫!

Gscripts.net 是一個成長快速的網站,提供相當豐富的PHP程式收藏,也可以說是一套PHP目錄。例如較多人喜歡的就屬部落格、相簿、討論區、內容管理系統(CMS)等等,而筆者較喜歡 Gscripts 的部份是它每個分類內容相當充實,除了有一個簡介以外,也會挑選其中較具代表性的程式來作介紹。舉例來說,部落格可能大家就會想到WordPress, 而論壇就是 phpBB 諸如此類。

除了PHP程式的介紹之外,Gscripts.net 也有評分、推薦或是評論(Review)的功能,集合眾人的力量來挑選評比出最佳的PHP程式。還有此類網站絕對不能缺少的功能就是範例(Demo)功能,Gscripts.net 也沒有忘記喔!使用者在找尋合適的PHP程式前可以先看該程式的實際運作情形,在決定要不要下載安裝該程式。

Gscripts.net 也在首頁聲明,大部分的程式都必須有 PHP 和 MySQL 資料庫才能夠正常運作,還有,他們不會將需要付費的PHP程式列在網站內,也就是說該網站的所有程式都是免費的啦!

【網站網址】http://gscripts.net/

2011年11月20日 星期日

網頁教學 Free-PHP.net - 免費PHP程式、PHP書籍、PHP教學文件與相關資源

Free-PHP.net 是一個國外提供 PHP 相關資訊的網站,除了收集了部份的 PHP 程式 (PHP scripts)、也有商業性質的 PHP 程式,當中都分類的相當仔細,Free-PHP.net 並不是一個開發程式的網站,它只是將一些實用的連結收錄進來而成的一個資訊站,資料或許不是相當豐富,但卻很實用。

同時 Free-PHP.net 也提供了 PHP 書籍(PHP Books)、PHP 教學文件(PHP Tutorials)、網站資源(Web Resources),甚至還有 PHP 的網站空間,對於 PHP 愛好者或網站管理員來說,這是一個相當不錯的資訊站台。

【網站網址】
http://www.free-php.net/

網頁套課PHP-資料庫圖片上傳-上課筆記-分享2U

上課時間:2010年9月2日

ChiaFang上課時用PowerPoint製作的隨堂筆記... 共29頁... 分享2U
內容主要為PHP資料庫圖片上傳流程...
歡迎同學下載附件PP檔 (有設開啟密碼:回覆後可以看到;也有設防寫密碼:恕不提供,僅能以唯讀模式開啟...)





筆記線上瀏覽:
http://homepage8.seed.net.tw/web@1/hsujosephine/php/php20100902pp_share2u.ppt

開啟密碼:chia0902
編輯權限密碼:恕不提供,請選擇唯讀模式開啟