深入解析php模板技術(shù)原理【一】
1、模板的由來(lái) 在沒(méi)有模板技術(shù)之前,使用PHP開(kāi)發(fā)程序,通常都是php代碼和html混編在一起。比如說(shuō)新聞列表,很可能就是一個(gè)newslist.php頁(yè)面,結(jié)構(gòu)如下:
<? //從數(shù)據(jù)庫(kù)中讀取出要顯示的新聞?dòng)涗? ?> <html> <head>…….....
|
1、模板的由來(lái) 在沒(méi)有模板技術(shù)之前,使用PHP開(kāi)發(fā)程序,通常都是php代碼和html混編在一起。比如說(shuō)新聞列表,很可能就是一個(gè)newslist.php頁(yè)面,結(jié)構(gòu)如下:
<? //從數(shù)據(jù)庫(kù)中讀取出要顯示的新聞?dòng)涗? ?> <html> <head>…….....
app/ 目錄是程序的主要目錄。 App/actions 放置控制器文件,支持多級(jí)目錄。如果是控制器,文件必須是***Action.php,如果是抽象類,必須是***.php。 App/models 放置模型 模型的文件名為***.php其中***必須和該文件中的模型...
第一步:入門 如何使用phpbean進(jìn)行路由轉(zhuǎn)發(fā)呢?下面是一個(gè)簡(jiǎn)單的使用例子。 首先,index.php是程序的單一入門,主要進(jìn)行路由轉(zhuǎn)發(fā)的工作。Index.php的程序代碼如下:
<? include('startup.php');//載入啟動(dòng)文件 try{ $...
之前寫了一片文章關(guān)于如何在ZF0.6版本下擴(kuò)展ZF的。這篇應(yīng)該說(shuō)是類似的文章,但環(huán)境換成ZF1.0RC1版本了。
在開(kāi)始ZF擴(kuò)展之前,推薦先看看ZF手冊(cè)中的一些命令規(guī)范(ZF推薦使用),同時(shí)希望讀者對(duì)ZF有較好的理解。如果沒(méi)有,...
剛剛調(diào)式程序,本來(lái)在服務(wù)器上好好的程序到了win下居然出錯(cuò)。 后來(lái)仔細(xì)調(diào)式才發(fā)現(xiàn)是set_include_path的問(wèn)題。 在win下,當(dāng)你要include多個(gè)路徑的話,你要用“;”隔開(kāi),但在linux下就使用":"隔開(kāi)的。。Zendframe 中的include p...
一、當(dāng)前框架存在什么問(wèn)題
目前主流的框架Zend Framework、Cakephp等都采用了MVC模式,同時(shí)實(shí)現(xiàn)了URL的路由分配。比如說(shuō)http://www.xxx.com/user/login就會(huì)映射到userController對(duì)象中的loginAction方法,http://...
作者:Armel Fauveau 原文地址:http://www.phpbuilder.net/columns/armel20010427.php3 PHP能夠打開(kāi)遠(yuǎn)程或者本地服務(wù)器的sockets!這里是一個(gè)使用socket的簡(jiǎn)單的例子:連接到Usenet的新聞服務(wù)器,與服務(wù)器溝通,并從一個(gè)精確的...
最近一個(gè)項(xiàng)目需要用到SMTP發(fā)送郵件,之前的庫(kù)類不存在了,又不喜歡安裝pear或者使用pear的net/smtp類,感覺(jué)太復(fù)雜了。就直接從discuz中抽取出核心稍微修改了下。 從協(xié)議分析網(wǎng)上,查找到SMTP協(xié)議的命令和應(yīng)答,SMTP協(xié)議在發(fā)...
從Zend Framework v0.13版本開(kāi)始,我就開(kāi)始學(xué)習(xí)使用Zend Framework。當(dāng)時(shí)公司的一個(gè)項(xiàng)目也恰好用到了Zend Framework。到了0.6的版本之后就再?zèng)]有關(guān)注細(xì)節(jié)了。前些日子聽(tīng)說(shuō)Zend 公司將在5月份正式推出Zend Framework,今...
前端一直使用PHP5,的確使用起來(lái)特別的爽,現(xiàn)在為了能在俺的虛擬主機(jī)上跑,不得不改成PHP4的。這幾個(gè)庫(kù)類我以前發(fā)在PHPCHIAN,地址是http://www.phpchina.com/bbs/viewthread.php?tid=5687&highlight=。(前幾天在網(wǎng)上搜索了下...
在開(kāi)發(fā)過(guò)程中,往往因?yàn)楸韱纬鲥e(cuò)而返回頁(yè)面的時(shí)候填寫的信息都不見(jiàn)了,為了支持頁(yè)面回跳,可以通過(guò)兩種方法實(shí)現(xiàn)。 第一,使用Header方法設(shè)置消息頭Cache-control
header('Cache-control: private, must-revalidate'); //...
把 [url]http://wwww.aaaaaaaaa.com/bbb.php?id=888[/url] 的地址形式改為 [url]http://wwww.aaaaaaaaa.com/888.htm[/url] 或者 [url]http://wwww.aaaaaaaaa.com/yourname/888.htm[/url] 當(dāng)然可以按照你的要求隨便變...
官方地址:http://www.arnot.info/eaccelerator/選擇下載對(duì)應(yīng)您的系統(tǒng)和PHP版本的eAccelerator
2.將其重命名為 eaccelerator.dll (win版) 然后移至您的 php目錄下 的 ext文件夾中
3.在c:/php/建立緩存文件夾 temp...
eAccelerator 真是一個(gè)好東西(它的前身是truck-mmcache)。
簡(jiǎn)單來(lái)講它是一套配合PHP(支持PHP5)運(yùn)作的緩存系統(tǒng),通過(guò)共享內(nèi)存或磁盤文件方式交換數(shù)據(jù)。
它被廣為使用的是PHP源碼“編碼”(不太貼切的稱為“加密”)和緩存...
選擇下載對(duì)應(yīng)您的系統(tǒng)和PHP版本的eAccelerator
2.將其重命名為 eaccelerator.dll (win版) 然后移至您的 php目錄下 的 ext文件夾中
3.在c:/php/建立緩存文件夾 temp 修改權(quán)限為 user組可讀寫
3.根據(jù)您系統(tǒng)的情...
index.php復(fù)制代碼 代碼如下:<?PHP $output = ""; if(isset($_GET['action'])&&$_GET['action'] == 'make'){ if(isset($_FILES['upimage']['tmp_name']) && $_FILES['upimage']['...
pw的一個(gè)放后門的方式
data/bbscache/admin_record.php是記錄后臺(tái)登陸和操作的,我們看看是怎么操作這個(gè)文件的:
admin/admincp.php:
$bbsrecordfile=D_P."data/bbscache/admin_record.php"; if(!file_exists($b...
最新打算學(xué)習(xí)php,發(fā)現(xiàn)好多函數(shù)需要用到,可自己寫又麻煩,于是找了下php的常用函數(shù),從各大php系統(tǒng)中弄下來(lái)的,絕對(duì)是使用的php實(shí)用函數(shù)復(fù)制代碼 代碼如下:function GetIP() { //獲取IP if ($_SERVER["HTTP_X_FORWARDED_...
先看代碼sunip.php 復(fù)制代碼 代碼如下:<?php header("Content-type: image/gif"); $im = imagecreate(130,15); $background_color = ImageColorAllocate ($im, 255, 255, 255); unset($ip); if($_SERVER['HTTP...
//獲得當(dāng)前的腳本網(wǎng)址 復(fù)制代碼 代碼如下:function get_php_url(){ if(!empty($_server["REQUEST_URI"])){ $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptN...
1、產(chǎn)生隨機(jī)字符串函數(shù) 復(fù)制代碼 代碼如下:function random($length) { $hash = @#@#; $chars = @#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#; $max = strlen($chars) - 1; mt_srand((d...
//把一個(gè)數(shù)字的二進(jìn)制表示形式轉(zhuǎn)化成十六進(jìn)制
string bin2hex(string tring) //除去字符串結(jié)尾處的空格
string rtrim(string string) //rtrim的別名
string chop(string string) //從字符串的兩頭除去空格
s...
//輸出關(guān)于PHP和當(dāng)前請(qǐng)示的信息頁(yè)面
int phpinfo(void) //返回當(dāng)前PHP版本號(hào)
string phpversion(void) //打印出為本PHP項(xiàng)目做出貢獻(xiàn)的人員的清單
string phpcredits(void) //可將 var 轉(zhuǎn)成整數(shù)類型。base 是轉(zhuǎn)...
//打開(kāi)一個(gè)到MySQL服務(wù)器的連接。成功返回連接符,失敗時(shí)返回false
int mysql_connect([string server[,string username[,string password]]]) //打開(kāi)一個(gè)到MySQL服務(wù)器的持久性連接
int mysql_pconnect([string s...
//寄出電子郵件到指定的郵件地址 to,subject 表示主題,message 為信件內(nèi)容。額外的選項(xiàng) additional_headers 可省略,表示其他郵件文檔首部
bool mail(string to,string subject,string message,string [additional――...