坚持为客户提供有价值的服务和内容

为什么使用php,php网站制作经验

商企云 | 2021-07-02 | 分享至:
大綱 ● 認識 PHP网站制作 ● PHP 設計經驗談 – 為什麼要用樣板 – 為什麼要用資料庫介面 – 什麼是 PEAR – PHP + MySQL4.1s 2認識 PHP ● 跨平台網頁程式語言 ● PHP 可以做的事情 ● 大量的 OpenSource 套件 3跨平台的 PHP ● LAMP – Linux + Apache + MySQL + PHP ● 幾乎所有的 Linux Dist 預設都有這些套件 ● WAMP – Windows + Apache + MySQL + PHP ● 快速環境建立 – Appserv – Easyphp ● PHP For IIS 4PHP 可以做的事情 ● Server-side scripting – 網頁程式設計 ● Command line scripting – 用 PHP 來寫 Shell Script ● Client-side GUI applications – PHP-GTK 5大量的 OpenSource 套件 (1) ● Forum: – phpBB2 ● CMS – Xoops – Mambo,Joomla – PhpNuke – postnuke ● Calender – PHP iCalendar – phpCalendar – EasyPHPCalendar 6大量的 OpenSource 套件 (2) ● Groupware – Egroupware – DotProject – Phpgroupware ● List – PHPList ● Webmail – Squirrelmail ● Blog – WordPress – Plog 7初學者的問題 ● 程式碼直接寫在 HTML 中 – 市面上的書大都以此為教學 – 市面上大部份 PHP 的書本沒有說到樣版系統 – 習慣直接用 echo 輸出資料 ● 不夠熟悉 HTML – 表格跨行,跨欄的使用 – 表單的設計 – POST 與 GET 的使用時機 ● 不習慣在 register_globals=Off 工作 ● 錯誤訊息的不熟悉 – 對英文的恐懼 ? 8怎樣的程度才不算新手 ? ● 清楚了解 Server Side 跟 Client Side 的差別 ● 清楚了解 register_globals 設定的意義 ● 不會搞不清邏輯判斷跟變數值指定的分別 ● 清楚了解 POST 跟 GET,COOKIE 跟 Session 等的 關係與差別 ● 對於基本錯誤訊息有辦法解讀 ● 具備基本 HTML 分析能力 – 一般常用 TAG 分析與參數使用 – TABLE tag 結構分析 9PHP 設計經驗談 ● PHP 程式設計標準 ● 幾個進階時可以考慮學習 – 建立一個標準的檔案架構 – 至少熟悉一套樣版程式 – 採用資料庫介面 – 多多使用 PEAR ● MySQL4.1 – Sub-Select – Charset 的影響 10建立一個標準的檔案架構 ● 你應該建立一個標準的檔案目錄架構 – 函式庫該放哪裡? – 樣版該放哪裡 ? – 外掛程式 ? – 是否有網站設定檔 ? – 是否有管理介面 ? ● 多參考目前幾個 OpenSource 的 CMS – Xoops, phpbb2,mambo 等 ● 可以簡單的 , 就不要複雜 11PHP 程式設計標準 ● 訂定專案程式設計標準的好處 – 變數,物件,函式有固定的命名方式 – 專案的程式風格統一,降低維護複雜度 ● 進行中的專案不要任意變換標準 – 標準訂定應該是專案一開始就要決定的 – 標準訂定應該由專案參與人一同討論決定 ● 可以參考的設計標準資料 – PHP 程式設計標準 12PHP 程式設計標準之外 (1) ● 架構整個網站的時候應該使用的方法 – 至少使用三層式程式設計 ● 表現層 - 實際輸出 html ● 邏輯層 - 處理程式流程 ● 資料處理層 - 處理資料存取 – 就是使用 MVC(Model-View-Controller) 架構你 的網站 – 函式,物件之中不要直接輸出資料 ● 儘量採用 return $html 的方式處理 13PHP 程式設計標準之外 (2) ● 該用 echo 還是 printf ? – 輸出一般字串用 echo – 輸出內含變數的字串用 printf ● printf('a href='%s' target='%s'>%s',$url,$target,$name); ● printf('a href='%s' target='%s'>%s',array($url,$target,$name)); – 當建立 SQL 語法的時候用 sprintf ● $SQL = sprintf('Select * from %s where ID = %s',$tableName,$id); 14至少熟悉一套樣版程式 ● 為什麼要用樣版 ? ● 兩套我推薦的樣版程式 – Smarty – TBS 15為什麼要用樣版 ? ● 別讓今天的程式,成為明天維護的負擔 ● 美術設計不再為了都是程式碼的網頁苦惱 ● 程式設計不再為了都是 HTML Tag 的程式苦惱 ● 網站設計改版將會是輕鬆的事情 16沒使用樣版的程式碼 使用樣版的程式碼 網頁樣版檔 官方推薦 Smarty ● Smarty 為 PHP 推薦使用的樣版引擎 – http://smarty.php.net ● Smarty 採用預先編譯樣版 – 速度較快 ● Smarty 可以直接 assign 物件,陣列等 ● Smarty 提供全域變數 – $smarty.get , $smarty.post ,$smarty.server ● Smarty 可直接輸出靜態頁面進行 Cache ● Smarty 支援外掛模組的使用 – SmartyValidate 20輕量化的 Smarty-lite ● 較適合單純的樣版需求環境 ● 速度較 Smarty 更快 ● 系統記憶體需求較少 ● 功能上較 Smarty 少一些 – 無法 assign 物件 – 少了輸出前中後的過濾器 – 不支援樣版存入資料庫的模式 21小而強大的 TBS ● TBS – TinyButStrong – http://www.tinybutstrong.com ● 所見即所得的樣版引擎 ● 支援 Cache ● 直接存取資料庫顯示資料 – $TBS->MergeBlock('blk1',$cnx_id,'select *from t_country',$p_size,$p_num,$nbr_rec); 22為什麼要用資料庫介面 ? ● 為了寫出通用各資料庫的 PHP 程式 ● 更方便使用的資料庫的功能 ● 減少程式撰寫上的複雜 23ADOdb ● 降低 Windows 程式設計師學習門檻 – 部份介面設計類似 Microsoft's ADO ● 支援多種資料庫 – MySQL,PgSQL,Oracle,MSSQL etc...... ● 增加了許多方便的方法,程式撰寫更輕鬆 – SelectLimit – PageExecute,AtfirstPage,AtLastPage,Absolut ePage – getInsertSQL,getUpdateSQL,autoExecute ● 資料庫快取,同樣的資料不用再讀資料庫 – CacheExecute – CachePageExecute 24 ADOdb-lite ● ADOdb-lite 為 ADOdb 精簡版 ● 資料庫支援程度幾乎不相上下 ● 少了許多 ADOdb 提供的 Function ● 也減少了許多系統記憶體的耗用 25ADOdb 開發範例 ● 設計分頁功能 – 分頁功能的應用很多 ● 留言版 , 討論區 , 資料列表 , 訂單列表 ..etc – $rs = $db->PageExecute($sql,$onePageStep,$_GET['page']); if(!$rs->AtFirstPage()){ ... // 進行上一頁聯結輸出 } if(!$rs->AtLastPage()){ ... // 進行下一頁聯結輸出 } 26什麼是 PEAR ● PHP Extension and Application Repository – http://pear.php.net/ – 類似 Perl 的 CPAN – 提供安裝程式與更新升級程式 pear ● 共 31 種分類的程式套件可供取用 – 常用的像 Database HTML Mail Networking 27安裝 pear 提供的套件 ● 常用的 pear 指令 ● 安裝與移除的時候都會提示相依套件 28幾個好用的 PEAR 套件 ● HTML 類 – HTML_QuickForm – HTML_Table – Pager ● XML 類 – XML_RSS – XML_sql2xml – XML_Tree ● Mail 類 – Mail – Mail_Queue ● PHP 類 – PHPUnit – PhpDocumentor ● Services 類 – Services_Delicious – Services_Yahoo 29MySQL4.1 ● 不久的將來各 Linux Dist 將預設 MySQL 4.1 ● MySQL4.1 的優點 – 支援 Sub-Select – 更完整的多國語系支援 – 速度更快 ● 4.x 起 MySQL 有 Query Cache 功能 ● MySQL4.1 還差什麼 ? – Trigger – Stored Procedures 30MySQL Subqueries ● MySQL 4.1 以前並沒有 Subqueries ● Subqueries 的好處 – SQL 語法更簡潔 – 可查詢的方式更多樣 ● 請不要客氣的使用這個方便好用的功能吧 ! ● 官方文件資料 – http://dev.mysql.com/doc/mysql/en/subqueri es.html 31Trigger 跟 Stored Procedures 呢 ? ● MySQL4.x 沒有 Trigger,Stored Procedures ● MySQL5 以後才會支援 Trigger ● MySQL5 以後才會支援 Stored Procedures – 不過目前 MySQL5 還在 beta 階段 – 但是目前已經有部份網站已經使用 32讓 MySQL 更快 ● 千萬不要忘記去調整你的 my.cnf – /etc/my.cnf – 可以參考 /usr/share/mysql 下的範例 ● 既然有 query_cache 就別浪費 ● 使用 EXPLAIN 去分析你的 SQL 語法 . 33當更新到 MySQL4.1 常見問題 ● 為什麼我的資料抓出來都是 ● 為什麼在 phpMyAdmin2.6 中看到的都是亂碼 ● 為何使用 myqldump 的資料庫都是亂碼 34一切都是多國語系支援惹的禍 ● 4.1 後需要設定資料庫與 client 編碼 – 設定好資料庫預設語系 ● /etc/my.cnf – [mysqld] – default-character-set=utf8 – character-set-server = utf8 – collation-server = utf8_general_ci ● 如果系統都跑 utf8 – init_connect='SET NAMES utf8′ – default-character-set = utf8 – default-collation = utf8_general_ci – PHP 連線 MySQL 後請設定 Client 編碼 ● 當資料庫連線後送出 'set names utf8' – $db->Execute('SET NAMES utf8'); – mysql_query('SET NAMES utf8'); 35一定要用 UTF8 嗎 ? ● 不一定要用 UTF8 ● 資料庫或是資料表編碼指定 ● 資料庫 – CREATE DATABASE `MyTABLE` DEFAULT CHARACTER SET big5 COLLATE big5_chinese_ci; ● 資料表 – CREATE TABLE `myTable` ( – ..... etc .... – ) ENGINE=MyISAM DEFAULT CHARSET=big5 ; ● 儘量讓 Server 跟 Client 都用相同的 Char – 若不同的 Character MySQL 會試著幫忙轉換 – 例如可以同一套 Database 資料 (utf8) – 同時提供 big5 跟 gb2312 的 Client. ● 但是部份的轉換會失敗 , 所以會有像是漏字或 ?? 產生 36 匯出匯入語系設定 ● 大部份的人會用 mysqldump 備份資料 – mysql4.1 以前你可以不指定語系 – mysql4.1 以後務必要指定語系 – mysqldump -u root -p --default-character-set=big5 my Table ● 重新匯入資料 – 請記的也要加上語系設定 – mysql --default-character-set=big5 -u root -p < myTa ble.sql 37網站與參考文章 (1) ● PHP – http://www.php.net ● Smarty – http://smarty.php.net – Smarty-Lite ● http://www.paullockaby.com/projects/smarty-lig ht/ ● PEAR – http://pear.php.net ● TBS – TinyButStrong – http://www.tinybutstrong.com 38網站與參考文章 (2) ● ADOdb – http://adodb.sf.net – ADOdb-lite ● http://adodblite.sf.net/ ● MySQL – http://www.mysql.com ● 中文參考網站 – http://www.twpug.net – http://www.php5.idv.tw 39PHP Command line scripting ● 如果你沒有學 Shell Script 的編寫 ● 如果你像我一樣基本上最熟的就是 PHP ● 或許你可以考慮用 PHP 寫 Command line scri pting 40PHP Command line scripting ● 需要些什麼 – 可執行的 PHP 執行檔 ● 例如 Mandriva 是提供 php-cli 的套件 – 還有你要知道執行檔放在那 ● Mandriva 放在 /usr/bin/php ● 怎麼寫 ? – 就跟網頁程式一樣 ● 語法 , 可用的函式 , 輸出 ~ 都一樣 41PHP Command line scripting ● 怎麼執行呢 ? – 直接 [shell#] PHP ScriptFileName 去執行 – 在檔案開頭加上 #!/usr/bin/php -q ● 記的檔案要 chmod +x 喔 ● 還有什麼要注意的 ? – 執行時 include 的路徑 ● 建議這類的檔案使用絕對路徑 include ● 尤其當該 script 是要放入 crontab 時 – 程式的輸出或許應該要去掉 html 42如何邁向更進階 ? ● Framework 的學習 ● Framework 的目的 – 簡化開發流程 – 加快效率 – 專注程序處理邏輯,而不是技術問題。 ● Framework 的缺點 – 學習曲線太長 – 初學者就學習 Framework 容易忽略基礎技術 43幾個推薦的 Framework ● CakePHP – 參考 Ruby on Rails – 較其他 frameword 輕量化 ● php.MVC – 參考 Java 的 Struts ● 目前樂多日誌 (Blog.yam.com) 使用 ● Seagull – 使用 PEAR 程式庫 ● PRADO – Zend 獲獎作品 , 事件驅動模式 – Only PHP5 本文发布于北京网站建设公司商企云http://www.1558.cn/
扫二维码与项目经理沟通

7*24小时为您服务

解答:网站优化,网站建设,APP开发,小程序开发,H5开发,品牌推广,新闻推广,舆情监测等

  非常感谢您有耐心的读完这篇文章:"为什么使用php,php网站制作经验",更多内容请继续浏览,我们将为您提供更多参考使用或学习交流的信息。我们还可为您提供:网站建设与开发网站优化品牌推广、APP开发、小程序开发新闻推广等服务,我们以“降低营销成本,提高营销效果”的服务理念,自创立至今,已成功服务过不同行业的1000多家企业,获得国家高新技术企业认证,且拥有14项国家软件著作权,将力争成为国内企业心目中值得信赖的互联网产品及服务提供商。如您需要合作,请扫码咨询,我们将诚挚为您服务。
我要咨询
姓名 :
电话 :
文章分类