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