PHP光速教程

來源:互聯網
上載者:User
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的文法

// 這是注釋行,注釋行以//開始

phpinfo(); // 語句以;結束
?>

7 PHP的變數

鬆散類型,自動聲明,強制轉換
PHP變數以$開頭(從錢開始,很實惠的一種語言)

$txt = "Hello World!"; // 字串用""包圍,轉義",\
$number = 16;
?>


鬆散類型語言:VB,VBscript,ASP,PHP,Python
強型別語言:C(C++),JSP


8 PHP的運算子

算術運算:+,-,*,/,%(取餘),++(自增1),--(自減1)

賦值運算:=,+=,-=,*=,/=,.=,%=

比較子:==,===,!=,>,<,>=,<=

邏輯運算子:&&,||,!

其它運算子:.(字串串連)

$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;
}


// foreach迴圈的樣本

$arr=array("one", "two", "three");

foreach ($arr as $value)
{
echo "Value: " . $value . "
";
}
?>


*結束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 ] )

$str=" xiao ping ni hao! ";
echo trim($str);
echo "
";
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
因此判斷是否找到字串應該用===而不能用==

$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)

// 設定為東8區
date_default_timezone_set('Etc/GMT-8');

echo date("Y-m-d H:i:s",time());
?>


自訂函數:

$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
session_start();
$_SESSION['user']="redice";
?>


// 讀取session
session_start();
echo $_SESSION['user'];
?>

刪除SESSION
unset($_SESSION['user']);
?>

session_destroy(); // 將刪除所有的session
?>

(2)COOKIE

儲存在用戶端,隨請求報文一起被發送到服務端,
常用來儲存使用者自訂設定、瀏覽記錄等與安全無關的資料。

*COOKIE在用戶端儲存,可被使用者修改,因此不能儲存敏感性資料。


// 建立cookie
setcookie(name, value, expire);

setcookie()也需要修改HTTP應答頭,因此需要在輸出任何本文之前被調用

setcookie("user", "redice", time()+3600);
?>

// 讀取cookie
echo $_COOKIE["user"];
?>

// 刪除cookie
// 設定立即到期,用戶端(瀏覽器)會自動刪除
setcookie("user", "", time()-3600);
?>


14 資料庫操作

操作流程:

串連資料庫->選擇庫->設定採用的字元集
->操作資料(查詢,更新,刪除,插入)->關閉資料庫

$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 其它

良好的程式風格:縮排,注釋

開發工具的選取原則:代碼關鍵字高亮,自動完成
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.