PIXNET Logo登入

狐的窩

跳到主文

享受生活

部落格全站分類:圖文創作

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 8月 15 週一 201111:36
  • 用 Smarty 開發第一個程式


一個 Smarty 程式主要來兩個部分來組成:php程式和html(樣版)。html(樣版)放在templates目錄下,Smarty建議用tpl作為樣版的副檔名(不是tpl也可以)。php程式和樣版分開放在不同的目錄,可以方便控管權限,只開放樣版目錄給UI設計師,這樣就不用擔心他們會異動到PHP相關程式。
樣版 first.tpl 內容:
<html>
<head>
<title>Smarty</title>
</head>
<body>
{* Hello again *}
Hello, {$name}!
</body>
</html>

說明:
樣版註解:在Smarty中以"{*"和"*}"所包起來的片段,會被Smarty視為註解。
標籤定義符號:在Smarty中以{}包起來。
指定變數:$name便是Smarty指定變數的方式,這和PHP是一樣的。
故 {$name} 的作用就像PHP中 <?php echo $name; ?> 相類似。
程式 first.php 內容:
<?php
// 載入 Smarty 物件類別檔
require('Smarty/Smarty.class.php');

// 建立 Smarty 物件
$smarty = new Smarty();
/* 定義 Smarty 的工作路徑
** 一般在開發 Smarty 程式時,有兩個物件屬性一定要指定。
** template_dir 指定存放樣版的路徑。
** complie_dir 指定存放編譯好的樣版的路徑。
** 此兩個路徑必須是實體路徑,這樣才能夠正確的存取它們。
*/
$smarty->setTemplateDir('D:/WebServer/wwwroot/demo/templates');
$smarty->setCompileDir('D:/WebServer/wwwroot/demo/templates_c');

/* 指定變數
** 整支程式的關鍵點,透過assign函式來指定結果到變數。
** assign函式的第一個變數是樣版的變數名稱,第二個變數是PHP的變數名稱。
** 兩個變數名稱可以不一樣,但為了方便管理,通常會指定成同樣的變數名稱。
*/
$smarty->assign('name', 'World');
// 顯示結果,指定讀取樣版
$smarty->display('first.tpl');
?>

打開瀏覽器,鍵入http://localhost:8081/demo/first.php,假設一切沒問題,會看到下面的畫面:
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(2,075)

  • 個人分類:PHP
▲top
  • 8月 15 週一 201111:35
  • 在Windows安裝Smarty


Smarty是php最常被採用的樣版,本篇文章將介紹如何在Windows系統安裝和測試Smarty。
Install Smarty
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(276)

  • 個人分類:PHP
▲top
  • 7月 27 週三 201115:35
  • 在Windows安裝xdebug(Debug tool for php)


xdebug是一個Open Source的php debug工具,可以用來追蹤分析PHP程式運行的情況。
安裝 xdebug
A. 確認所需下載的版本
    xdebug官方網站提供了一個方便的功能,只要將phpinfo() 所得的結果貼到find-binary網頁,讓其來分析結果就可以得到要下載的檔案版本。
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(3,380)

  • 個人分類:PHP
▲top
  • 7月 05 週二 201117:09
  • 在Windows安裝php開發環境(二)


之前試著透過自動安裝及設定的方式來建置php開發環境,似乎不是很順利,決定以手動安裝的方式再來建置一次開發環境。

規劃目錄結構
打算仿造IIS將相關程式放在同一目錄底下,以下是我規劃的目錄結構:



註:我把整個目錄放在D槽,和我的Windows系統目錄C槽分開,這樣當OS系統有任何問題,需要重灌時,開發環境的設定和資料不會消失。
下載要安裝的各軟體
Apache
如網站需要SSL支援,請下載包含OpenSSL的版本。
http://httpd.apache.org/download.cgi (Win32 Binary including OpenSSL 0.9.8r: httpd-2.2.19-win32-x86-openssl-0.9.8r.msi)
PHP
請盡量選擇最新穩定版本,我打算讓php搭配apache以module來執行,故選擇 VC6 x86 Thread Safe的版本;如果要搭配IIS,請選擇VC9的版本,需要Microsoft 2008 C++ Runtime (x86)。
因要手動安裝,所以下載沒有安裝檔的zip package即可。
http://windows.php.net/download/ (VC6 x86 Thread Safe: php-5.2.17-Win32-VC6-x86.zip)
安裝Apache
執行httpd-2.2.19-win32-x86-openssl-0.9.8r.msi,大都直接按[Next]即可安裝完。要注意的地方如下:
1. 安裝到Server Information時,其中Install Apache HTTP Server 2.2 programs and shortcuts for選項,請選擇only for Current User, on Port 8080, when started Manually. 當然如果確定不使用IIS,也可以使用 Port 80的選項。
2. 安裝到Destination Folder時,請將安裝目錄改變成D:\WebServer\Apache2.2。
註:雖然指定Port 8080,安裝時可能會遇到apache啟動失敗的訊息,apache還是會用80去啟動,先可不管,等安裝完php,所有設定一次來搞定。
安裝PHP
1. 將php-5.2.17-Win32-VC6-x86.zip解壓縮到D:\WebServer\php目錄下。
2. 把D:\WebServer\php\php.ini-dist複製一份成php.ini。
修改php.ini
要建立開發環境,有些設定需打開,請將其前面的分號註解拿掉,相關需修改的設定如下:
錯誤訊息用
error_log = "d:/WebSerevr/logs/php_error.log"
PHP 5要先設定timezone,要不然程式會一直出現警告。
date.timezone = Asia/Taipei
如果有上傳檔案需求,請修改
post_max_size = 8M (請視需求修改)
upload_max_filesize = 2M (一般比post_max_size小)
相關路徑設定:
upload_tmp_dir = "D:\WebServer\temp\upload" (上傳暫存路徑)
include_path = ".;D:\WebServer\php\PEAR"
session.save_path = "d:\WebServer\temp\session"
extension_dir = "d:\WebServer\php\ext"
接下來是常用的延伸套件:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
修改httpd.conf
透過修改httpd.conf來讓apache認識php,使php成為apache的模組。
修改d:\WebServer\Apache2.2\conf\httpd.conf以下設定:
Listen 80 將其改成 Listen 8081
ServerName *:80 將其改成 ServerName *:8081
註:Listen和ServerName兩個port的值要一樣
在httpd.conf最底下加入
PHPIniDir "D:/WebServer/php/"
LoadModule php5_module "D:/WebServer/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
修改DirectoryIndex,加入index.php
DirectoryIndex index.html index.php
這樣apache就會以Module的方式來執行php了。
繼續修改httpd.conf其他設定
打開 LoadModule rewrite_module modules/mod_rewrite.so
修改預設網站根目錄
DocumentRoot "D:/WebServer/wwwroot"
<Directory "D:/WebServer/wwwroot"&gt
啟用.htaccess,找到<Directory />,將AllowOverride None的None改成All;<Directory "D:/WebServer/wwwroot">區段內的AllowOverride None也改成All。
測試
測試前,懶人大絕,電腦重開,來讓各設定生效。
先在D:\WebServer\wwwroot底下產生index.php,內容如下:
<?php
phpinfo();
?>
在瀏覽器鍵入 http://localhost:8080/ 及 http://localhost:8081/index.php 熟悉的兩個畫面應該就會出現了

(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(5,518)

  • 個人分類:PHP
▲top
  • 7月 04 週一 201117:04
  • 在Windows安裝php開發環境

本文主要介紹如何在 Windows 上建置 PHP 的開發環境,以供有興趣的朋友參考。
1. 下載要安裝的各軟體
1.1. Apache http://httpd.apache.org/download.cgi
請盡量選擇最新穩定版本下載: Win32 Binary without crypto (no mod_ssl) (MSI Installer): httpd-2.2.19-win32-x86-no_ssl.msi
有需要SSL的請下載SSL版本
1.2. PHP http://www.php.net/downloads.php(windows use http://windows.php.net/download/)
請盡量選擇最新穩定版本: php 5.2.17 VC6 x86 Thread Safe installer
但有幾點要特別注意
a. 搭配apache ,請選擇 VC6 的版本
b. 搭配 IIS ,請選擇 VC9 的版本,需要Microsoft 2008 C++ Runtime (x86)
2. 軟體安裝順序
因為php安裝過程中會要求設定apache,所以請先安裝apache。
2.1 安裝apace
典型windows軟體安裝步驟,照圖形上數字點選即可完成安裝




設定網域,請在5, 6, 7填入適當的值
如果windows系統有安裝IIS,請選擇 only for the Current User, on Port 8080, when started Manually.


安裝目錄強烈建議不要更動,以免安裝時造成不必要的路徑問題


安裝完成後,右下角的工作列會有一個 apache 監視項目。
安裝完成後,進行簡單設定,請打開 C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
目標為下列兩個項目:
# 管理者信箱,前提是你的伺服器要有寄送功能,這樣就能收到錯誤訊息
ServerAdmin admin@freefox.com
# 指定WEB SERVER的PORT
ServerName *:80
重啟 apache

啟動錯誤怎麼辦,請善用事件檢視器查詢錯誤原因
常見錯誤: OS 10013
原因:因Windows IIS已經使用了 port 80,安裝時設定網域沒有選擇only for the Current User, on Port 8080, when started Manually. 造成 port 衝突,apache無法啟動。
解決:打開C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf,找到
Listen 80 將其改成 Listen 8081
ServerName *:80 將其改成 ServerName *:8081
記得兩個port的值要一樣,再重新啟動 apache即可。
測試

2.2. 安裝php



選擇apache版本

選擇apache路徑

特殊選項安裝,如可以先安裝mysql模組





安裝完PHP後,要讓apache認得PHP,此時需要重啟apache,卻重啟失敗,從錯誤訊息得知無法載入php5apache2_2.dll
解決:請打開C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf 檢視php安裝過程自動加入的設定...
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir ""
LoadModule php5_module "php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
改成
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:/Program Files/PHP/"
LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
存檔後,重啟apache,並在C:\Program Files\Apache Software Foundation\Apache2.2\htdocs目錄下新增一個index.php,檔案內容為
phpinfo();
?>
然後用瀏覽器檢視http://localhost:8081/index.php,如果有顯示PHP的相關設定資訊即成功了。類似畫面如下:

建置完的感覺,自動安裝設定,真的一點都不靠普,還不如以前下載ZIP,所有設定要自己搞定來的實在,至少不用猜錯在哪再去改設定。
(繼續閱讀...)
文章標籤

mark528 發表在 痞客邦 留言(0) 人氣(43,714)

  • 個人分類:PHP
▲top
1

文章搜尋

好康資訊

熱門文章

  • (2,547)Excel:將範圍資料轉成圖片
  • (16,026)Excel:如何讀取固定欄位值
  • (2,382)市面上的A6萬用手冊內頁尺寸真的是A6嗎?
  • (15,179)用 excel 來記錄體重及體脂肪
  • (336)紙模:史上最強的水管工 馬力歐
  • (11,744)Shell Script:運用 date 指令取得日期時間(Linux)
  • (1,929)Perl: 快速分解檔案路徑及名稱。 use File::Basename
  • (11,152)忘記PostgreSQL資料庫管理者密碼,要如何重新設定
  • (70,435)Oracle與日期有關的常用函數
  • (4,865)Oracle內建常用字串函數

文章分類

toggle 資料庫 (5)
  • DB2 (8)
  • SQL Server (6)
  • MySQL (7)
  • Oracle (10)
  • PostgreSQL (6)
toggle 手工物製作 (3)
  • 模型 (25)
  • PaperCraft (110)
  • 手帳 (3)
toggle 學習心得 (3)
  • PMP (1)
  • 讀書心得 (2)
  • 學習心得 (17)
toggle 程式設計 (15)
  • 專案管理 (1)
  • Websphere (1)
  • HTML (3)
  • Visual C++ (8)
  • Windows 8 (1)
  • Java (20)
  • JSP (4)
  • Web (6)
  • C# (11)
  • Windows Scripting Host (1)
  • Shell Script (3)
  • ASP.NET (6)
  • WebPI (1)
  • PHP (5)
  • Perl (7)
toggle 生活綜合 (2)
  • 生活資訊 (73)
  • 生活雜記 (25)
toggle 網路資源 (2)
  • 圖像和圖示 (3)
  • 網路空間應用 (1)
toggle 軟體應用 (5)
  • Windows 8 (1)
  • CentOS (7)
  • excel (6)
  • iphone (25)
  • 虛擬軟體 (2)
  • 未分類文章 (1)

文章精選

個人資訊

mark528
暱稱:
mark528
分類:
圖文創作
好友:
累積中
地區:

參觀人氣

  • 本日人氣:
  • 累積人氣: