PHP光速教程
PHP光速教程
日期:2010-07-29?|? 來源:redice's Blog?|? 作者:redice?|? 182 人圍觀?|? 0 人鼓掌了! //?by?redice?2010.07.29//?redice@163.com
為公司實習(xí)生寫的PHP學(xué)習(xí)提綱,根據(jù)自己的學(xué)習(xí)及項目開發(fā)經(jīng)驗總結(jié)了PHP語言最核心的知識點。可以作為PHP快速入門的教程。
1?客戶端腳本和服務(wù)端腳本
客戶端:VBscript(對IE依賴性很強,放棄)、Javascript
服務(wù)端:ASP、PHP、Perl
JSP(服務(wù)端,非腳本)
Python(可用服務(wù)端,非腳本)
2?學(xué)習(xí)一門語言的要點/順序
功能、特點、語法、變量、運算符、流程控制、函數(shù)、數(shù)據(jù)結(jié)構(gòu)
3?學(xué)習(xí)服務(wù)端語言的要點
數(shù)據(jù)輸入輸出、數(shù)據(jù)庫操作、session和cookie的使用
4?PHP的功能
支持與眾多服務(wù)器軟件(Apache,IIS?ISAPI/FastCGI,Nginx等)結(jié)合進行數(shù)據(jù)處理
5?PHP的特點
跨平臺、內(nèi)置函數(shù)庫非常豐富(寫得少做得多)、語法簡潔、參考資料非常多
6?PHP的語法
<?php
//?這是注釋行,注釋行以//開始
phpinfo();??//?語句以;結(jié)束
?>
7?PHP的變量
松散類型,自動聲明,強制轉(zhuǎn)換
PHP變量以$開頭(從錢開始,很實惠的一種語言)
<?php
$txt?=?"Hello?World!";??//?字符串用""包圍,轉(zhuǎn)義",\
$number?=?16;
?>
松散類型語言:VB,VBscript,ASP,PHP,Python
強類型語言:C(C++),JSP
8?PHP的運算符
算術(shù)運算:+,-,*,/,%(取余),++(自增1),--(自減1)
賦值運算:=,+=,-=,*=,/=,.=,%=
比較運算符:==,===,!=,>,<,>=,<=
邏輯運算符:&&,||,!
其它運算符:.(字符串連接)
<?php
$i=10;
$i+=1;
echo?$i;???//?echo?數(shù)據(jù)輸出函數(shù),還可以用print
echo?++$i;?//??
echo?$i++;?//??
?>
*兩等號與三等號
==?只比較值是否相等,會將兩側(cè)值進行類型轉(zhuǎn)換
===?比較值和類型是否相同,不會進行類型轉(zhuǎn)換,類型和值都相同才為真
例如:
$a="2";????//?字串型2
$b=2;????//?數(shù)值型2
$a==$b,?是對的,都是2
$a===$b,是不對的,因為$a是字符型$b是數(shù)值型,值雖一樣,但類型不一樣
9?PHP流程控制
順序語句
分支語句:if?else,Switch
//?if?else語句
if?(condition)
??code?to?be?executed?if?condition?is?true;
elseif?(condition)
??code?to?be?executed?if?condition?is?true;
else
??code?to?be?executed?if?condition?is?false;?
//?switch語句
switch?(expression)
{
case?label1:
??code?to?be?executed?if?expression?=?label1;
??break;??
case?label2:
??code?to?be?executed?if?expression?=?label2;
??break;
default:
??code?to?be?executed
??if?expression?is?different?
??from?both?label1?and?label2;
}
循環(huán)語句:while,for,foreach
//?while循環(huán)
while?(condition)
code?to?be?executed;
//?for循環(huán)
for?(initialization;?condition;?increment)
{
??code?to?be?executed;
}
//?foreach循環(huán),遍歷數(shù)組
foreach?(array?as?value)
{
????code?to?be?executed;
}
<?php
//?foreach循環(huán)的示例
$arr=array("one",?"two",?"three");
foreach?($arr?as?$value)
{
??echo?"Value:?"?.?$value?.?"<br?/>";
}
?>
*結(jié)束PHP程序的執(zhí)行:
exit($str);?//?結(jié)束PHP執(zhí)行并輸出$str
die();????//?僅結(jié)束PHP執(zhí)行
10?PHP函數(shù)
內(nèi)置函數(shù):
http://php.chinaunix.net/manual/en/
(1)數(shù)據(jù)輸出:echo,print,print_r(輸出數(shù)組)
(2)字符串操作:
//?返回$string的長度
int?strlen?(?string?$string?)
//?刪除$str兩端的空格或其它字符
string?trim?(?string?$str?[,?string?$charlist?]?)
<?php
$str="?xiao?ping?ni?hao!?";
echo?trim($str);
echo?"<br/>";
echo?trim($str,"?x!")
?>
//?字符串轉(zhuǎn)大小寫
string?strtolower?(?string?$str?)
string?strtoupper?(?string?$string?)
//?尋找字串
int?strpos?(?string?$haystack?,?mixed?$needle?[,?int?$offset?=?0?]?)
返回值:返回找到的子串的位置,沒有找到返回false
注意:
如果子串$needle在$haystack串首出現(xiàn)將返回0
因此判斷是否找到字串應(yīng)該用===而不能用==
<?php
$str="redicecn.com";
//?下面是錯誤的判斷
if(strpos($str,"redice")==false)
{
???echo?"沒有找到子串!";
}
else
{
???echo?"找到了子串!";
}
?>
//?字符串截取
string?substr?(?string?$string?,?int?$start?[,?int?$length?]?)
//?字符串替換
string?str_replace?(?mixed?$search?,?mixed?$replace?,?mixed?$subject)
string?str_ireplace?(?mixed?$search?,?mixed?$replace,?mixed?$subject)?//?不區(qū)分大小寫
(3)時間日期:
//?time()?函數(shù)返回當(dāng)前時間的?Unix?時間戳
time(void)
//?date()?函數(shù)格式化一個本地時間/日期
//?默認(rèn)是格林威治時區(qū)
date(format,timestamp)
<?php
//?設(shè)置為東8區(qū)
date_default_timezone_set('Etc/GMT-8');
echo?date("Y-m-d?H:i:s",time());
?>
自定義函數(shù):
<?php
$sitename="電子工程社區(qū)";
function?welcom($user)
{
???global?$sitename;?//?引用全局變量
???//?返回值
???return?$user.",歡迎您的光臨".$sitename."!";?
}
//?函數(shù)調(diào)用
echo?welcom("redice");
?>
11?PHP的數(shù)據(jù)結(jié)構(gòu)
數(shù)組
//?數(shù)值數(shù)組的定義
(1)?自動分配key
$names?=?array("芙蓉姐姐","鳳姐","犀利哥");
(2)?手動分配key
$names[0]="芙蓉姐姐";
$names[1]="鳳姐";
$names[2]="犀利哥";
//?關(guān)聯(lián)數(shù)組的定義
$ages?=?array("芙蓉姐姐"=>32,?"鳳姐"=>29,?"犀利哥"=>42);
也可以這樣
$ages["芙蓉姐姐"]?=?32;
$ages["鳳姐"]?=?29;
$ages["犀利哥"]?=?42;
//?多維數(shù)組
$students?=?array
(
??"0911120688"=>array
??(
??"姓名"=>"齊鵬",
??"年齡"=>24,
??"性別"=>"男"
??),
??"0911120699"=>array
??(
??"姓名"=>"宋玉偉",
??"年齡"=>22,
??"性別"=>"女"
??),
??"0911120670"=>array
??(
??"姓名"=>"陳素芳",
??"年齡"=>22,
??"性別"=>"女"
??)
);
12?PHP輸入(獲取客戶端輸入)
(1)$_GET?變量
$_GET?變量是一個數(shù)組,內(nèi)容是由?HTTP?GET?方法發(fā)送的變量名稱和值。
(2)$_POST?變量
$_POST?變量是一個數(shù)組,內(nèi)容是由?HTTP?POST?方法發(fā)送的變量名稱和值。
(3)$_REQUEST?變量
PHP?的?$_REQUEST?變量包含了?$_GET,?$_POST?以及?$_COOKIE?的內(nèi)容。
13?SESSION和COOKIE的使用
(1)SESSION
保存在服務(wù)端,服務(wù)器通過COOKIE中的SESSIONID判斷,常用來進行身份驗證。
使用SESSION前需要用session_start()啟動會話,
由于session_start()需要修改HTTP應(yīng)答報文的COOKIE頭(存SESSIONID),
因此session_start()必須在HTTP應(yīng)答正文輸出之前被調(diào)用。
//?創(chuàng)建session
<?php
session_start();
$_SESSION['user']="redice";
?>
//?讀取session
<?php
session_start();
echo?$_SESSION['user'];
?>
刪除SESSION
<?php
unset($_SESSION['user']);
?>
或
<?php
session_destroy();?//?將刪除所有的session
?>
(2)COOKIE
保存在客戶端,隨請求報文一起被發(fā)送到服務(wù)端,
常用來存儲用戶自定義設(shè)置、瀏覽記錄等與安全無關(guān)的數(shù)據(jù)。
*COOKIE在客戶端存儲,可被用戶修改,因此不能存儲敏感數(shù)據(jù)。
//?創(chuàng)建cookie
setcookie(name,?value,?expire);
setcookie()也需要修改HTTP應(yīng)答頭,因此需要在輸出任何正文之前被調(diào)用
<?php?
setcookie("user",?"redice",?time()+3600);
?>
//?讀取cookie
<?php?
echo?$_COOKIE["user"];
?>
//?刪除cookie
<?php
//?設(shè)置立即過期,客戶端(瀏覽器)會自動刪除
setcookie("user",?"",?time()-3600);
?>
14?數(shù)據(jù)庫操作
操作流程:
連接數(shù)據(jù)庫->選擇庫->設(shè)置采用的字符集
->操作數(shù)據(jù)(查詢,更新,刪除,插入)->關(guān)閉數(shù)據(jù)庫
<?php
$conn=0;
$conn?=?mysql_connect("localhost","root","redice2009");
if?(!$conn)
{
??die("不能打開數(shù)據(jù)庫連接,錯誤:?"?.?mysql_error());
}
//?選擇數(shù)據(jù)庫
mysql_select_db("thymall",?$conn);
//?設(shè)置mysql數(shù)據(jù)庫輸出數(shù)據(jù)的字符集
mysql_query("set?names?'gbk'");
$sql="select?*?from?thym_goods?LIMIT?5";
//?執(zhí)行查詢
$result=mysql_query($sql,$conn);
//?遍歷查詢結(jié)果
while($result?&&?$row=mysql_fetch_array($result))
{
}
//?關(guān)閉數(shù)據(jù)庫
mysql_close($conn);
?>
15?其它
良好的程序風(fēng)格:縮進,注釋
開發(fā)工具的選取原則:代碼關(guān)鍵字高亮,自動完成
轉(zhuǎn)載于:https://www.cnblogs.com/kangwang1988/archive/2011/04/20/2023039.html
總結(jié)
 
                            
                        - 上一篇: 离职后的10多天假期
- 下一篇: 微软双拼拼音加加方案一键注册表导入
