欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP光速教程

程序员文章站 2022-05-01 11:44:30
...
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 其它

良好的程序风格:缩进,注释

开发工具的选取原则:代码关键字高亮,自动完成
相关标签: PHP光速教程