php課程教程-九游会j9娱乐平台
❶ php入門基礎教程
php入門基礎教程大全
php於1994年由rasmus lerdorf創建,剛剛開始是rasmus lerdorf為了要維護個人網頁而製作的一個簡單的用perl語言編寫的程序。這些工具程序用來顯示 rasmus lerdorf 的個人履歷,以及統計網頁流量。後來又用c語言重新編寫,包括可以訪問資料庫。他將這些程序和一些表單直譯器整合起來,稱為 php/fi。php/fi 可以和資料庫連接,產生簡單的動態網頁程序。為幫助大家入門學習php,我為大家分享php入門知識教程如下:
1、嵌入方法:
類似asp的<%,php可以是,當然您也可以自己指定。
2、引用文件:
引用文件的方法有兩種:require 及 include。
require 的使用方法如 require("myrequirefile.php"); 。這個函數通常放在 php 程序的最前面,php 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 php 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include("myincludefile.php"); 。這個函數一般是放在流程式控制制的處理部分中。php 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。
3、注釋方法:
echo "這是第一種例子。 " ; // 本例是 c 語法的注釋 (php的注釋跟c差不多!)
/* 本例採用多行的
注釋方式 */
echo "這是第二種例子。 " ;
echo "這是第三種例子。 " ; # 本例使用 unix shell 語法注釋
?>
4、變數類型:
$mystring = "我是字元串" ;
$newline = "換行了 " ;
$int1 = 38 ;
$float1 = 1.732 ;
$float2 = 1.4e 2 ;
$myarray1 = array( "子" , "丑" , "寅" , "卯" );
這里引出兩個問題,首先php變數以$開頭,第二php語句以;結尾,可能asp程序員會不適應。這兩個遺漏也是程序上大多錯誤所在。
5、運算符號:
數**非法字眼已被屏蔽**算:
符號 意義
加法運算
- 減法運算
* 乘法運算
/ 除法運算
% 取余數
累加
-- 遞減
字元串運算:
運算符號只有一個,就是英文的句號。它可以將字元串連接起來,變成合並的新字元串。類似asp中的&
$a = "php 4" ;
$b = "功能強大" ;
echo $a.$b;
?>
這里也引出兩個問題,首先php中輸出語句是echo,第二類似asp中的<%=變數%>,php中也可以。
邏輯運算:
符號 意義
< 小於
> 大於
<= 小於或等於
>= 大於或等於
== 等於
!= 不等於
&& 而且 (and)
and 而且 (and)
或者 (or)
or 或者 (or)
xor 異或 (xor)
! 不 (not)
學習目的:掌握php的流程式控制制
1、if..else 循環有三種結構
第一種是只有用到 if 條件,當作單純的判斷。解釋成 "若發生了某事則怎樣處理"。語法如下:
if (expr) { statement }
其中的 expr 為判斷的條件,通常都是用邏輯運算符號當判斷的條件。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括弧 {}。
範例:本例省略大括弧。
if ($state==1)echo "哈哈" ;
?>
這里特別注意的是,判斷是否相等是==而不是=,asp程序員可能常犯這個錯誤,= 是賦值。
範例:本例的執行部分有三行,不可省略大括弧。
if ($state==1) {
echo "哈哈 ;
echo "
" ;
}
?>
第兩種是除了 if 之外,加上了 else 的條件,可解釋成 "若發生了某事則怎樣處理,否則該如何解決"。語法如下
if (expr) { statement1 } else { statement2 } 範例:上面的例子來修改成更完整的處理。其中的 else 由於只有一行執行的指令,因此不用加上大括弧。
if ($state==1) {
echo "哈哈" ;
echo "
";
}
else{
echo "呵呵";
echo "
";
}
?>
第三種就是遞歸的 if..else 循環,通常用在多種決策判斷時。它將數個 if..else 拿來合並運用處理。
直接看下面的例子
if ( $a > $b ) {
echo "a 比 b 大" ;
} elseif ( $a == $b ) {
echo "a 等於 b" ;
} else {
echo "a 比 b 小" ;
}
?>
上例只用二層的 if..else 循環,用來比較 a 和 b 兩個變數。實際要使用這種遞歸 if..else 循環時,請小心使用,因為太多層的循環容易使設計的邏輯出問題,或者少打了大括弧等,都會造成程序出現莫名其妙的問題。
2、 for 循環就單純只有一種,沒有變化,它的語法如下
for (expr1; expr2; expr3) { statement }
其中的 expr1 為條件的`初始值。expr2 為判斷的條件,通常都是用邏輯運算符號 (logical operators) 當判斷的條件。expr3 為執行 statement 後要執行的部份,用來改變條件,供下次的循環判斷,如加一..等等。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括弧 {}。
下例是用 for 循環寫的的例子。
for ( $i = 1 ; $i <= 10 ; $i ) {
echo "這是第".$i."次循環
" ;
}
?>
3、 switch 循環,通常處理復合式的條件判斷,每個子條件,都是 case 指令部分。在實作上若使用許多類似的 if 指令,可以將它綜合成 switch 循環。
語法如下
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementn; break; }
其中的 expr 條件,通常為變數名稱。而 case 後的 exprn,通常表示變數值。冒號後則為符合該條件要執行的部分。注意要用 break 跳離循環。
switch ( date ( "d" )) {
case "mon" :
echo "今天星期一" ;
break;
case "tue" :
echo "今天星期二" ;
break;
case "wed" :
echo "今天星期三" ;
break;
case "thu" :
echo "今天星期四" ;
break;
case "fri" :
echo "今天星期五" ;
break;
default:
echo "今天放假" ;
break;
}
?>
這里需要注意的是break;別遺漏了,default,省略是可以的。
很明顯的,上述的例子用 if 循環就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程序的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。
學會構建資料庫
在php中,my sql的命令行編輯可能會令初學者感到很麻煩,不要緊,你下載一個phpmyadmin安裝一下,以後建立編輯資料庫可以靠它了。
下面說一下它的使用。
進入了phpmyadmin後,我們首先需要建立一個資料庫,
language (*) 這里選擇中文簡體,然後在左邊的 創建一個新的資料庫 這里填寫資料庫名字,點擊創建即可。
然後在左邊下拉菜單中選擇那個已經創建的資料庫。在下面的
在資料庫 shop 中創建一個新表 :
名字 :
欄位數 :
中填寫表名字和大致你認為的欄位數(不夠或者多了都不要緊,以後可以再添加或者預設),按執行。
然後就可以開始建立表了。
第一欄是欄位的名字;第二欄選擇欄位類型:
我們常用的是以下幾個:
1)varchar,文本類型
2)int,整數類型
3)float,浮點數類型
4)date,日期型
5)大家或許會問,自動添加的id在哪裡?這個只要選擇int類型,在後面的額外中選擇 auto_increment 就可以了。
建立了表以後,可以在左邊看到你建立的表,點擊以後,你可以:
1)按右邊的結構:查看修改表結構
2)按右邊的瀏覽:查看錶中的數據
3)按右邊的sql:運行sql語句
4)按右邊的插入:插入一行記錄
5)按右邊的清空:刪除表中所有記錄
6)按右邊的刪除:刪除表
還有一個很重要的功能就是導入和導出,當我們本機做好了程序和資料庫的時候,需要在伺服器上也有一個本地鏡像,如果是asp的access簡單了,直接上傳mdb文件即可,如果是sql server也可以連接遠端伺服器進行導入。那麼my sql中你可以導出所有的sql語句,到了遠端伺服器的phpmyadmin上,創建資料庫後按sql,粘帖你剛才復制下來的所有本級生成的sql語句即可。
學會連接資料庫
php簡直就是一個函數庫,豐富的函數使php的某些地方相當簡單。建議大家down一本php的函數手冊,總用的到。
我這里就簡單說一下連接mysql資料庫。
1、mysql_connect
打開 mysql 伺服器連接。
語法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整數
本函數建立與 mysql 伺服器的連接。其中所有的參數都可省略。當使用本函數卻不加任何參數時,參數 hostname 的默認值為 localhost、參數 username 的默認值為 php 執行行程的擁有者、參數 password 則為空字元串 (即沒有密碼)。而參數 hostname 後面可以加冒號與埠號,代表使用哪個埠與 mysql 連接。當然在使用資料庫時,早點使用 mysql_close() 將連接關掉可以節省資源。
2、 mysql_select_db
選擇一個資料庫。
語法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整數
本函數選擇 mysql 伺服器中的資料庫以供之後的資料查詢作業 (query) 處理。成功返回 true,失敗則返回 false。
最簡單的例子就是:
$conn=mysql_connect ("127.0.0.1", "", "");
mysql_select_db("shop");
連接機my sql資料庫,打開shop資料庫。在實際應用中應當加強點錯誤判斷。
學會讀取數據
先看兩個函數:
1、mysql_query
送出一個 query 字元串。 語法: int mysql_query(string query, int [link_identifier]); 返回值: 整數
本函數送出 query 字元串供 mysql 做相關的處理或者執行。若沒有指定 link_identifier 參數,則程序會自動尋找最近打開的 id。當 query 查詢字元串是 update、insert 及 delete 時,返回的可能是 true 或者 false;查詢的字元串是 select 則返回新的 id 值,當返回 false 時,並不是執行成功但無返回值,而是查詢的字元串有錯誤。
2、mysql_fetch_object 返回類資料。 語法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 類
本函數用來將查詢結果 result 拆到類變數中。若 result 沒有資料,則返回 false 值。
看一個簡單的例子:
$exec="select * from user";
$result=mysql_query($exec);
while($rs=mysql_fetch_object($result))
{
echo "username:".$rs->username."
";
}
?>
當然,表user中有一個username的欄位,這就類似asp中的
<%
exec="select * from user"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
do while not rs.eof
response.write "username:"&rs("username")&"
"
rs.movenext
loop
%>
當然先要連接資料庫,一般我們 require_once('conn.php');而conn.php裡面就是上一次說的連接資料庫的代碼。
小小的兩條命令可以完成讀取數據的工作了
學會添加刪除修改數據
mysql_query($exec);
單這個語句就可以執行所有的操作了,不同的就是$exec這個sql語句
添加:$exec="insert into tablename (item1,item2) values ('".$_post['item1']."',".$_post['item1'].")";
刪除:$exec="delete from tablename where...";
修改:$exec="update tablename set item1='".$_post['item1']."' where ...";
說到這里就要說一下表單和php變數傳遞,如果表單中的一個
表單以post提交的,那麼處理表單文件就可以用$_post['item1']得到變數值,同樣以get提交的就是$_get['item1']
是不是很簡單?但是通常$exec會有問題,因為可能您的sql語句會很長,您會遺漏.連接符,或者'來包圍字元型欄位。
我們可以注釋mysql_query($exec);語句用echo $exec;代替來輸出$exec以檢查正確性。如果您還不能察覺$exec有什麼錯誤的話,可以復制這個sql語句到phpmyadmin中執行,看看它的出錯信息。還有需要注意的是,我們不要使用一些敏感的字元串作為欄位名字,否則很可能會出現問題,比如說date什麼的。變數的命名,欄位的命名遵循一點規律有的時候對自己是一種好處,初學者並不可忽視其重要性。
學會session的使用
session的作用很多,最多用的就是站點內頁面間變數傳遞。
在頁面開始我們要session_start();開啟session;
然後就可以使用session變數了,比如說要賦值就是:$_session['item']="item1";要得到值就是$item1=$_session['item'];,很簡單吧。這里我們可能會使用到一些函數,比如說判斷是不是某session變數為空,可以這么寫:empty($_session['inum'])返回true or false。
下面綜合一下前面所說的我們來看一個登陸程序,判斷用戶名密碼是否正確。
登陸表單是這樣:login.php
|
處理文件是這樣
require_once('conn.php');
session_start();
$username=$_post['username'];
$password=$_post['password'];
$exec="select * from admin where username='".$username."'";
if($result=mysql_query($exec))
{
if($rs=mysql_fetch_object($result))
{
if($rs->password==$password)
{
$_session['adminname']=$username;
header("location:index.php");
}
else
{
echo "";
}
}
else
{
echo "";
}
}
else
{
echo "";
}
?>
conn.php是這樣:
$conn=mysql_connect ("127.0.0.1", "", "");
mysql_select_db("shop");
?>
由於 $_session['adminname']=$username;我們可以這樣寫驗證是否登陸語句的文件:checkadmin.php
session_start();
if($_session['adminname']=='')
{
echo "";
}
?>
做一個分頁顯示
關鍵就是用到了sql語句中的limit來限定顯示的記錄從幾到幾。我們需要一個記錄當前頁的變數$page,還需要總共的記錄數$num
對於$page如果沒有我們就讓它=0,如果有<0就讓它也=0,如果超過了總的頁數就讓他=總的頁數。
$execc="select count(*) from tablename ";
$resultc=mysql_query($execc);
$rsc=mysql_fetch_array($resultc);
$num=$rsc[0];
這樣可以得到記錄總數
ceil($num/10))如果一頁10記錄的話,這個就是總的頁數
所以可以這么寫
if(empty($_get['page']))
{
$page=0;
}
else
{
$page=$_get['page'];
if($page<0)$page=0;
if($page>=ceil($num/10))$page=ceil($num/10)-1;//因為page是從0開始的,所以要-1
}
這樣$exec可以這么寫 $exec="select * from tablename limit ".($page*10).",10";
//一頁是10記錄的
最後我們需要做的就是幾個連接:
注意事項
1、注意不要漏了分號
2、注意不要漏了變數前的$
3、使用session的時候注意不要遺漏session_start();
如果發生錯誤的時候,可以採用以下方法:
1、如果是sql語句出錯,就注釋瞭然後輸出sql語句,注意也要注釋調後續的執行sql語句
2、如果是變數為空,大多是沒有傳遞到位,輸出變數檢查一下,檢查一下表單的id和name
3、如果是資料庫連接出錯,檢查是否正確打開my sql和是否遺漏了連接語句
4、注意縮進,排除括弧不區配的錯誤
在做大網站的時候,我的思路是先構建資料庫,確定每一個欄位的作用,和表之間的關系。然後設計後台界面,從添加數據開始做起,因為添加是否成功可以直接到資料庫裡面驗證,做好了添加再做顯示的頁面,最後才是兩者的結合。一般來說後台就包括添加刪除修改和顯示,後台沒有問題了,前台也沒有什麼大問題。前台還需要注意安全性和容錯還有就是輸出格式。
學會用php上傳文件和發郵件
上傳文件表單必須加上 enctype="multipart/form-data"
和
下面看一下代碼:
$f=&$http_post_files['file'];
$dest_dir='uploads';//設定上傳目錄
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我這里設置文件名為日期加上文件名避免重復
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//設定上傳的文件的屬性
上傳的文件名為date("ymd")."_".$f['name'] ,可以在以後插入到資料庫的時候用到,php實際上是把你上傳的文件從臨時目錄移動到指定目錄。move_uploaded_file($f['tmp_name'],$dest);這是關鍵
至於發郵件就更加簡單,可以使用mail()函數
mail("收件人地址","主題","正文","from:發件人 reply-to:發件人的地址");
不過mail()需要伺服器的支持,在windows下還需要配置smtp伺服器,一般來說外面的linux空間都行。
好像上傳文件和發郵件比asp簡單很多,只要調用函數就可以了。asp還需要用到伺服器的不同組件比如fso、jmail什麼的。
;❷ php5教程之文件操作
一 引論
在任何計算機設備中 文件是都是必須的對象 而在web編程中 文件的操作一直是web程序員的頭疼的地方 而 文件的操作在cms系統中這是必須的 非常有用的 我們經常遇到生成文件目錄 文件(夾)編輯等操作 現在我把php中的這些函數做一詳細總結並實例示範如何使用 關於對應的函數詳細介紹 請查閱php手冊 此處只總結重點 和需要注意的地方 (這在php手冊是沒有的 )( lian )
二 目錄操作
首先介紹的是一個從目錄讀取的函數 opendir() readdir() closedir() 使用的時候是先打開文件句柄 而後迭代列出:
; while($flist=readdir($fso)){ echo $flist
; } closedir($fso) ?>
這是講返迴文件目錄下面的文件已經目錄的程序( 文件將返回false)
有時候需要知道目錄的信息 可以使用dirname($path)和basename($path) 分別返迴路徑的目錄部分和文件名名稱部分 可用disk_free_space($path)返回看空間空餘空間
創建命令:
mkdir($path )
是許可權碼 在非window下可用umask()函數設置
rmdir($path)
將刪除路徑在$path的文件
dir directory 類也是操作文件目錄的重要類 有 個方法 read rewind close 這是一個仿面向對象的類 它先使用的是打開文件句柄 然後用指針的方式讀取的 這里看php手冊:
handle /n ;echo path: $d >path /n ;while (false !== ($entry = $d >read())) { echo $entry /n ;}$d >close();?>
輸出:
handle: resource id # path: /etc/php apachecgicli
文件的屬性也非常重要 文件屬性包括創建時間 最後修改時間 所有者 文件組 類型 大小等
下面我們重點談文件操作
三 文件操作
a 讀文件
首先是一個文件看能不能讀取(許可權問題) 或者存在不 我們可以用is_readable函數獲取信息
判斷文件存在的函數還有file_exists(下面演示) 但是這個顯然無is_readable全面 當一個文件存在的話可以用
但是file_get_contents函數在較低版本上不支持 可以先創建文件的一個句柄 然後用指針讀取全部:
$fso = fopen($cachefile r ); $data = fread($fso filesize($cachefile)); fclose($fso);
還有一種方式 可以讀取二進制的文件:
$data = implode( file($file));
b 寫文件
和讀取文件的方式一樣 先看看是不是能寫:
能寫了的話可以使用file_put_contents函數寫入:
file_put_contents函數在php 中新引進的函數(不知道存在的話用function_exists函數先判斷一下)低版本的php無法使用 可以使用如下方式:
$f = fopen($file w ); fwrite($f $data); fclose($f);
替換之
寫文件的時候有時候需要鎖定 然後寫:
function cache_page($pageurl $pagedata){ if(!$fso=fopen($pageurl w )){ $this >warns( 無法打開緩存文件 );//trigger_error return false; } if(!flock($fso lock_ex)){//lock_nb 排它型鎖定 $this >warns( 無法鎖定緩存文件 );//trigger_error return false; } if(!fwrite($fso $pagedata)){//寫入位元組流 serialize寫入其他格式 $this >warns( 無法寫入緩存文件 );//trigger_error return false; } flock($fso lock_un);//釋放鎖定 fclose($fso); return true; }
c 復制 刪除文件
php刪除文件非常easy 用unlink函數簡單操作:
即可
復制文件也很容易:
文件夾必須能寫 if (file_exists($file) == false) { die ( 小樣沒上線 無法復制 ); } $result = ($file $newfile); if ($result == false) { echo 復制記憶ok ; } ?>
可以使用rename()函數重命名一個文件夾 其他操作都是這幾個函數組合一下就能實現的
d 獲取文件屬性
我說幾個常見的函數:
獲取最近修改時間:
返回的說unix的時間戳 這在緩存技術常用
相關的還有獲取上次被訪問的時間fileatime() filectime()當文件的許可權 所有者 所有組或其它 inode 中的元數據被更新時間 fileowner()函數返迴文件所有者
$owner = posix_getpwuid(fileowner($file));
(非window系統) ileperms()獲取文件的許可權
filesize()返迴文件大小的位元組數:
// 輸出類似 somefile txt: bytes
$filename = somefile txt ; echo $filename : filesize($filename) bytes ;
?>
獲取文件的全部信息有個返回數組的函數stat()函數:
那個鍵對應什麼可以查閱詳細資料 此處不再展開
四 結束語
lishixin/article/program/php/201311/21262❸ php網路編程標准教程的目錄
第1章 php概述001
1.1什麼是php002
1.2php開發語言的特點002
1.3php的發展趨勢003
1.4如何學好php004
1.5php的語法結構005
1.5.1php標識符的規則005
1.5.2php標記符的作用005
1.6程序注釋006
1.6.1使用php注釋006
1.6.2使用html注釋007
1.6.3有效使用注釋007
1.7php輸出指令008
1.7.1應用print()語句輸出字元008
1.7.2應用echo()語句輸出字元009
1.7.3應用printf()語句格式化輸出字元010
1.7.4應用sprintf()語句格式化輸出字元011
1.8php包含語句011
1.8.1應用include()語句包含文件011
1.8.2應用require()語句包含文件012
1.8.3應用include_once()語句包含文件013
1.8.4應用require_once()語句包含文件013
1.8.5include()語句和require()語句的區別014
1.8.6include_once()語句和require_once()語句的區別016
1.9php動態網頁的工作流程016
1.10體驗php——編寫第1個php web016
1.10.1創建站點016
1.10.2使用dreamweaver創建php文件017
1.10.3創建php標記017
1.10.4編寫php代碼017
1.10.5存儲文件018
1.10.6網站運行結果018
1.11獲取幫助信息018
1.11.1php學習工具和資料下載019
1.11.2獲取php的源代碼資源019
1.12本章小結020
第2章php環境的安裝與配置021
2.1windows下應用appserv快速配置php開發環境022
2.2windows下apache mysql php的安裝配置024
2.2.1windows下apache的安裝配置024
2.2.2windows下mysql的安裝配置027
2.2.3windows下php的安裝配置028
2.3在windows下架設iis php的執行環境029
2.3.1iis的安裝030
2.3.2架設php到iis030
2.4linux下apache mysql php的安裝配置032
2.4.1linux下apache的安裝配置032
2.4.2linux下mysql的安裝配置033
2.4.3linux下php的安裝配置034
2.5獲取php的配置信息035
2.5.1apache伺服器的基本配置035
2.5.2php.ini文件的基本配置035
2.6解決php的常見配置問題037
2.6.1解決apache伺服器埠沖突037
2.6.2更改apache伺服器默認存儲的文件路徑037
2.6.3在php.ini文件中更改上傳文件的大小037
2.6.4增加php擴展模塊038
2.6.5修改php.ini文件以支持mysql資料庫038
2.7本章小結038
第3章php語言基礎039
3.1php常量040
3.1.1聲明和使用常量040
3.1.2預定義常量041
3.2php變數042
3.2.1理解變數042
3.2.2聲明變數043
3.2.3變數作用域043
3.2.4可變變數045
3.2.5預定義變數045
3.2.6變數的生存周期046
3.3數據類型046
3.3.1標量數據類型046
3.3.2復合數據類型050
3.3.3特殊數據類型051
3.3.4轉換數據類型052
3.3.5檢測數據類型053
3.4php的運算符054
3.4.1操作算術運算符054
3.4.2操作字元串運算符055
3.4.3操作賦值運算符055
3.4.4操作位運算符056
3.4.5遞增或遞減運算符056
3.4.6操作邏輯運算符057
3.4.7操作比較運算符058
3.4.8其他運算符059
3.4.9運算符的使用規則059
3.5php的表達式060
3.6自定義函數061
3.6.1定義和調用函數061
3.6.2在函數間傳遞參數062
3.6.3函數的返回值063
3.7本章小結064
第4章流程式控制制語句065
4.1演算法066
4.1.1什麼是演算法066
4.1.2演算法的描述方法066
4.1.3程序的3種控制結構067
4.2條件控制語句068
4.2.1if條件控制語句068
4.2.2switch多分支語句070
4.2.3if和switch語句的區別072
4.3循環語句074
4.3.1while循環語句074
4.3.2do...while循環語句076
4.3.3for循環語句077
4.3.4foreach循環語句078
4.3.5各循環語句間的區別079
4.4跳轉語句080
4.4.1break跳轉語句080
4.4.2continue跳轉語句081
4.4.3return跳轉語句082
4.5try…catch…throw語句083
4.6流程式控制制語句的嵌套083
4.7本章小結084
第5章 php與web頁面交互085
5.1表單數據的提交方式086
5.1.1通過get方法提交數據086
5.1.2通過post方法提交數據087
5.2獲取提交的表單數據088
5.2.1獲取按鈕的數據088
5.2.2獲取文本區域的數據089
5.2.3獲取單選按鈕的數據090
5.2.4獲取復選框的數據091
5.2.5獲取列表框的數據092
5.2.6獲取文本域的數據093
5.2.7獲取文件域的數據094
5.2.8獲取隱藏域的數據094
5.3在php中處理表單變數095
5.4對表單傳遞的變數值進行編碼與解碼096
5.4.1url編碼與解碼096
5.4.2base64編碼與解碼097
5.5本章小節098
第6章字元串操作099
6.1字元串簡介100
6.2單引號和雙引號的區別100
6.3字元串的連接符101
6.4字元串操作101
6.4.1去除字元串首尾空格和特殊字元101
6.4.2字元串與html相互轉換103
6.4.3轉義、還原字元串數據104
6.4.4獲取字元串的長度106
6.4.5截取字元串107
6.4.6比較字元串108
6.4.7檢索字元串111
6.4.8替換字元串113
6.4.9格式化字元串116
6.4.10連接、分割字元串117
6.4.11url編碼解碼函數119
6.5本章小結121
第7章正則表達式122
7.1什麼是正則表達式123
7.1.1正則表達式的發展史123
7.1.2正則表達式中的術語123
7.2正則表達式的語法規則123
7.2.1行定位符(^和$)124
7.2.2單詞定界符(、b)125
7.2.3字元類([ ])125
7.2.4選擇字元(|)126
7.2.5連字元(-)127
7.2.6排除字元([^])127
7.2.7限定符(? * {n,m})127
7.2.8點號字元(.)128
7.2.9轉義字元()128
7.2.10反斜線()128
7.2.11括弧字元(())129
7.2.12反向引用130
7.2.13捕獲130
7.2.14斷言(環視)130
7.2.15模式修飾符131
7.2.16模式匹配的順序131
7.3posix擴展正則表達式函數132
7.3.1ereg()函數和eregi()函數132
7.3.2ereg_replace()函數和eregi_replace()函數133
7.3.3split()函數和spliti()函數134
7.4pcre兼容正則表達式函數135
7.4.1preg_grep()函數135
7.4.2preg_match()函數和preg_match_all()函數135
7.4.3preg_quote()函數137
7.4.4preg_replace()函數137
7.4.5preg_replace_callback()函數137
7.4.6preg_split()函數138
7.5本章小結138
第8章 php數組139
8.1數組的概述140
8.2數組的基本操作140
8.2.1聲明數組140
8.2.2輸出數組141
8.2.3定位數組141
8.2.4遍歷數組143
8.2.5增加、刪除數組元素147
8.2.6確定數組大小和惟一性149
8.2.7數組的排序150
8.2.8數組的合並與拆分151
8.2.9數組和字元串之間的轉換154
8.3其他數組函數155
8.3.1創建指定范圍的數組155
8.3.2對數組中的元素進行隨機排序156
8.3.3對數組中所有元素進行求和156
8.3.4將一維數組拆分為多維數組157
8.4php全局數組158
8.4.1$_server[ ]全局數組158
8.4.2$_get[ ]和$_post[ ]全局數組158
8.4.3$_cookie全局數組158
8.4.4$_env[ ]全局數組158
8.4.5$_request[ ]全局數組158
8.4.6$_session[ ]全局數組158
8.4.7$_files[ ]全局數組159
8.5本章小結160
第9章日期和時間161
9.1日期和時間的概述162
9.2處理日期和時間162
9.2.1獲取日期和時間163
9.2.2獲取日期和時間信息164
9.2.3檢驗日期和時間的有效性165
9.2.4輸出格式化的日期和時間166
9.3php的時間戳168
9.3.1php中的時間戳168
9.3.2獲取格林威治標准時間的時間戳168
9.3.3獲取本地化時間戳169
9.3.4獲取當前時間戳171
9.4本章小結171
第10章文件和目錄處理技術172
10.1文件處理技術的基本操作173
10.1.1打開文件173
10.1.2讀取文件173
10.1.3寫入文件178
10.1.4刪除文件179
10.1.5關閉文件179
10.1.6復制文件179
10.1.7移動和重命名文件180
10.2文件的高級處理技術180
10.2.1訪問遠程文件181
10.2.2測試文件指針的位置181
10.2.3文件指針的定位181
10.2.4鎖定文件183
10.3目錄操作技術183
10.3.1打開目錄183
10.3.2讀取目錄183
10.3.3建立目錄184
10.3.4刪除目錄184
10.3.5改變目錄185
10.3.6關閉目錄185
10.4文件上傳和下載技術185
10.4.1開啟php文件上傳功能185
10.4.2post方法上傳文件186
10.4.3上傳多個文件187
10.4.4生成臨時文件188
10.4.5下載文件188
10.5本章小結189
第11章圖形圖像處理技術190
11.1gd函數庫的概述191
11.1.1windows下打開gd2函數庫支持191
11.1.2linux下打開gd2函數庫支持191
11.1.3應用gd2函數創建圖像192
11.2基本的圖像處理技術193
11.2.1創建畫布193
11.2.2設置顏色193
11.2.3生成圖像194
11.2.4銷毀圖像195
11.2.5繪制點與線195
11.2.6繪制幾何圖形197
11.2.7填充幾何圖形198
11.2.8輸出文字201
11.3jpgraph的安裝與配置203
11.3.1jpgraph的安裝204
11.3.2jpgraph的配置204
11.4圖形圖像的典型應用204
11.4.1應用圖像處理技術生成驗證碼204
11.4.2應用圖像處理技術生成餅形圖206
11.4.3應用柱形圖統計商品月銷量208
11.4.4應用折線圖分析學習php的過程209
11.5本章小結210
第12章 cookie和會話控制211
12.1概述212
12.1.1cookie概述212
12.1.2會話控制212
12.2cookie的操作212
12.2.1設置cookie212
12.2.2訪問cookie213
12.2.3刪除cookie213
12.2.4cookie數組214
12.3cookie的應用215
12.4會話的操作216
12.4.1會話的基本方式216
12.4.2配置php的會話217
12.4.3創建會話217
12.5會話的應用219
12.5.1登錄驗證219
12.5.2通過session禁用頁面刷新221
12.6本章小結222
第13章面向對象223
13.1概述224
13.1.1面向對象的概念224
13.1.2面向對象語言的3大特點224
13.1.3php 5.0面向對象的新特性225
13.2類和對象225
13.2.1類的結構及聲明方式225
13.2.2屬性和方法的定義225
13.2.3使用構造函數226
13.2.4使用析構函數227
13.2.5類的實例化227
13.3控制訪問許可權228
13.4類的繼承和重載228
13.4.1繼承的概念228
13.4.2php中實現繼承的方法228
13.4.3重載的概念229
13.4.4php中實現類重載的方法229
13.4.5用final關鍵字對繼承和重載進行限制229
13.5介面230
13.5.1介面的概念230
13.5.2php實現介面230
13.6php面向對象新特性231
13.6.1per-class常量的應用231
13.6.2對象的克隆231
13.6.3__autoload()方法232
13.6.4使用instanceof關鍵字判斷實例類型232
13.6.5使用this關鍵字調用類成員232
13.6.6使用parent關鍵字調用父類成員233
13.6.7使用self關鍵字調用類體中的靜態成員233
13.6.8輔助函數234
13.7php中面向對象的應用238
13.7.1應用面向對象的方式實現用戶身份驗證238
13.7.2數據的分頁顯示239
13.8本章小結241
第14章 mysql資料庫基礎242
14.1mysql概述243
14.1.1mysql的特點243
14.1.2sql和mysql243
14.2mysql伺服器的啟動和關閉244
14.2.1啟動mysql伺服器244
14.2.2連接mysql伺服器245
14.2.3關閉mysql伺服器245
14.3操作資料庫246
14.3.1創建資料庫246
14.3.2選擇資料庫247
14.3.3刪除資料庫247
14.4操作數據表247
14.4.1創建表248
14.4.2修改表249
14.4.3刪除表249
14.5操作數據250
14.5.1添加語句(insert)250
14.5.2修改語句(update)251
14.5.3刪除語句(delete)251
14.5.4批量增加記錄語句(load data和mysqlimport)251
14.6數據查詢語句252
14.6.1運用select查詢(對數據表的選擇)252
14.6.2where條件語句的應用253
14.6.3group by 對結果分組254
14.6.4distinct在結果中去除重復行254
14.6.5order by對結果排序254
14.6.6like應用255
14.6.7concat聯合多列255
14.6.8limit限定結果行數256
14.6.9使用函數和表達式256
14.7數據類型257
14.7.1數字類型257
14.7.2字元串類型258
14.7.3日期和時間數據類型259
14.8phpmyadmin圖形化管理工具260
14.8.1庫級操作260
14.8.2表級操作261
14.8.3增刪改數據262
14.8.4查詢數據263
14.8.5數據的導入與導出264
14.9本章小結266
第15章資料庫編程技術267
15.1php操縱mysql資料庫268
15.1.1建立與mysql資料庫的連接268
15.1.2選擇和使用mysql資料庫268
15.1.3執行sql指令269
15.1.4分析結果集269
15.1.5斷開與mysql資料庫的連接270
15.2管理mysql資料庫中的數據271
15.2.1向資料庫中添加數據271
15.2.2編輯資料庫數據272
15.2.3從資料庫中刪除數據274
15.2.4批量數據操作276
15.3對mysql表的查詢277
15.3.1通用查詢277
15.3.2高級查詢279
15.3.3分組統計280
15.3.4對查詢結果分頁顯示282
15.3.5對查詢結果進行跳轉分頁顯示283
15.4數據備份和恢復286
15.5本章小結288
第16章php的字元編碼289
16.1了解網頁字元編碼290
16.1.1ascii 字元集290
16.1.2iso 8859 字元集290
16.1.3gb2312與gbk編碼290
16.1.4unicode字元集291
16.1.5utf-8編碼291
16.2php網頁的字元編碼292
16.2.1正確使用文件編碼292
16.2.2編碼轉換293
16.2.3檢測字元串的編碼294
16.2.4字元編碼的優先順序294
16.2.5亂碼產生的根源和解決方案295
16.3php開發中的中文編碼問題295
16.3.1資料庫中的字元集編碼問題295
16.3.2解決頁面中的亂碼問題296
16.3.3通過php自定義函數無亂碼截取中文字元串298
16.4php的區域化設置300
16.4.1php網頁的區域化301
16.4.2使用setlocale()函數設置區域化302
16.5本章小節302
第17章 php的調試與異常處理303
17.1基本調試策略304
17.2常見錯誤分析304
17.2.1語法錯誤304
17.2.2語義錯誤307
17.2.3注釋錯誤307
17.2.4運行錯誤308
17.2.5邏輯錯誤310
17.3php.ini中的錯誤處理設置310
17.4錯誤處理312
17.4.1錯誤的隱藏312
17.4.2錯誤的定製312
17.4.3超時錯誤的處理313
17.5程序調試313
17.5.1應用die語句調試313
17.5.2應用print語句調試314
17.5.3應用mysql_error語句輸出錯誤信息315
17.6mysql的常見錯誤316
17.6.1php與mysql連接錯誤316
17.6.2解決資料庫亂碼問題317
17.6.3上傳二進制數據到資料庫失敗317
17.7本章小結319
第18章php與xml的網路開發320
18.1xml的概述321
18.2xml語法321
18.2.1xml文檔結構321
18.2.2xml聲明321
18.2.3處理指令322
18.2.4xml注釋322
18.2.5xml元素322
18.2.6xml屬性323
18.2.7使用cdata標記323
18.2.8xml命名空間324
18.3在php中創建xml文檔324
18.4通過dom操作xml文檔325
18.4.1通過dom類庫創建xml文檔325
18.4.2通過getelementsbytagname()方法讀取xml327
18.4.3通過dom類庫向xml中添加數據328
18.4.4通過xpath查詢xml中的數據330
18.4.5通過replacechild()方法修改xml文檔331
18.4.6通過removechild()方法刪除xml文檔334
18.5本章小結335
第19章 smarty模板技術336
19.1smarty簡介337
19.1.1什麼是smarty337
19.1.2smarty與mvc337
19.1.3smarty的特點337
19.2smarty的安裝配置337
19.2.1smarty下載與安裝337
19.2.2第1個smarty程序338
19.2.3配置smarty339
19.3smarty模板設計340
19.3.1smarty模板文件340
19.3.2注釋340
19.3.3變數340
19.3.4修飾變數(variable modifers)343
19.3.5內建函數344
19.3.6自定義函數349
19.4smarty程序設計351
19.4.1smarty中的常用方法352
19.4.2smarty的配置變數353
19.4.3smarty緩存354
19.5本章小結354
第20章注冊和登錄355
20.1設計思路356
20.1.1功能闡述356
20.1.2程序業務流程356
20.1.3文件組織結構356
20.2資料庫設計357
20.3連接資料庫358
20.3.1關鍵函數358
20.3.2功能實現359
20.4用戶注冊模塊359
20.4.1關鍵函數359
20.4.2頁面設計360
20.4.3功能實現361
20.5檢測用戶是否被佔用362
20.5.1關鍵函數362
20.5.2頁面設計363
20.5.3功能實現364
20.6驗證用戶注冊信息是否合法365
20.6.1關鍵函數365
20.6.2功能實現365
20.7用戶登錄366
20.7.1關鍵函數366
20.7.2頁面設計367
20.7.3功能實現368
20.8圖片驗證碼功能369
20.8.1關鍵函數介紹369
20.8.2頁面設計371
20.8.3功能實現371
20.9退出登錄功能372
20.9.1關鍵函數372
20.9.2功能實現372
20.10本章小節372
第21章留言本373
21.1設計思路374
21.1.1功能闡述374
21.1.2程序業務流程374
21.1.3文件組織結構375
21.2資料庫設計376
21.3連接資料庫377
21.3.1關鍵函數介紹377
21.3.2功能實現377
21.4添加留言模塊378
21.4.1關鍵函數378
21.4.2頁面設計378
21.4.3功能實現380
21.5查看留言模塊381
21.5.1關鍵函數381
21.5.2頁面設計381
21.5.3功能實現381
21.6修改留言模塊383
21.6.1關鍵函數383
21.6.2頁面設計384
21.6.3功能實現385
21.7刪除留言模塊386
21.7.1關鍵函數386
21.7.2頁面設計386
21.7.3功能實現387
21.8查詢留言模塊388
21.8.1關鍵函數388
21.8.2頁面設計388
21.8.3功能實現389
21.9本章小結390
第22章電子商務391
22.1需求分析392
22.2系統分析和設計392
22.2.1可行性分析392
22.2.2功能結構分析和設計392
22.2.3系統流程概述393
22.2.4開發環境394
22.3資料庫設計394
22.3.1資料庫的分析395
22.3.2創建資料庫395
22.3.3創建數據表395
22.3.4數據表的結構395
22.4技術准備398
22.4.1代碼書寫規則398
22.4.2網站架設之初398
22.4.3文件管理規劃399
22.5前台開發399
22.5.1設計分析399
22.5.2前台首頁的實現399
22.5.3商品展示模塊的實現402
22.5.4購物車的實現405
22.5.5收銀台的實現408
22.5.6用戶登錄模塊的實現409
22.5.7本站公告模塊的實現417
22.6後台開發418
22.6.1設計分析418
22.6.2後台首頁418
22.6.3後台登錄模塊420
22.6.4商品信息管理模塊422
22.6.5簡訊管理模塊426
22.6.6訂單信息管理模塊428
22.7電子商務完整清單431
22.8本章小結432
第23章播客433
23.1了解播客434
23.1.1播客起源434
23.1.2播客的發展前景434
23.2系統設計435
23.2.1系統功能概述435
23.2.2系統功能結構435
23.2.3系統流程概述436
23.2.4開發環境437
23.2.5文件夾組織結構437
23.3adodb類庫的安裝配置437
23.4資料庫設計438
23.4.1資料庫的分析438
23.4.2創建資料庫438
23.4.3創建數據表438
23.5前台開發439
23.5.1設計分析439
23.5.2在線播放功能的實現440
23.5.3最新推出功能的實現448
23.5.4上傳視頻文件功能的實現450
23.5.5視頻下載功能的實現452
23.5.6創建播客個人主頁453
23.5.7站內訂閱457
23.5.8訂閱管理458
23.6後台開發462
23.6.1設計分析462
23.6.2上傳視頻管理功能的實現463
23.6.3動態創建視頻文件類型465
23.6.4管理員管理466
23.7本章小結468
附錄實例快速檢索469