php整理
php是一种创建动态交互性站点的强有力的服务器端脚本语言
php脚本在服务器上执行,然后将纯HTML结果发送回浏览器
php脚本可以放在文档中的任何位置
php文件通常包含HTML标签和一些php脚本代码
php中的变量以$符号开始,后面跟着变量的名称(以字母或者下划线字符开始,变量不能包含空格,区分大小写)
php是一门弱类型语言(根据变量的值,自动把变量转换为正确的数据类型)
php变量作用域
local global static paramemer
global作用域
在所有的函数外部定义的变量,拥有全局作用域,出来函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用global关键字
语法:
$x=5;
$y=10;
function myTest(){
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y;//输出结果是15
static作用域
当一个函数完成时,它的所有变量通常都会被删除,然后,有的时候你希望某个局部变量不要被删除,要做到这一点,需要在你第一次声明变量时使用static关键字
然后每次调用该函数,该变量将会保留着函数前一次被调用时的值,该变量依然是局部变量
参数作用域
function myTest($x){
echo $x;
}
myTest(5);
echo和print语句
echo 可以输出一个或多个字符串
print 只允许输出一个字符串,返回值总为1
echo输出的速度比print快,echo没有返回值,print有返回值1.
PHP EOF(heredoc)使用说明
是一种在命令行shell(如sh,csh,ksh,bash,powershell和zsh)和程序语言(想Perl,php,python和ruby)里定义一个字符串的方法
必须后接分号,结束标识必须顶格独自占一行(即必须从行首开始,后不能衔接任何空白和字符)
实例:
echo<<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落</p>
EOF
//结束需要独立一行且不能有空格
php数据类型
String 字符串 ; Integer 整形 ;Float 浮点型 ; Boolean 布尔型; Array 数组; Object 对象;NULL(空值)
var_dump()函数
用于输出变量的相关信息
显示关于一个或多个表达式的结构信息,包括表达式的类型与值,数组将递归展开值,通过缩进显示其结构
$a=array(1,2,array("a","b","c"));
var_dump($a);
php常量:
常量值定义后,在脚本的其他任何地方都不能被改变
设置常量,使用define()函数 bool define(string $name,mixed $value [, bool $case_insensitive=false])
该函数有三个参数
name 必选参数,常量名称,即标识符
value 必选参数,常量的值
case_insersitive 可选参数 设置为true该常量则大小写不敏感,默认false,大小写敏感
常量生成之后默认是全局变量
php算数运算符: $x%$y 取模 a.b 并置 连接两个字符串 例如“hi"."ha" 结果是hiha
php递增递减运算符
++x 预递增 x加1,然后返回x
x++ 后递增 返回x,然后x加1
$x=10;
++$x; // 11 --$x; //9
$x++; //10 $x--; //10
php比较运算符
== 等于 ===绝对等于(如果x等于y,且他们类型相同,则返回true) 5===“5”返回false
x<>y 不等于 x!=y 不等于
php逻辑运算符
x and y 与 如果x和y都是ture则返回true
x or y 或 如果x和y至少有一个为true,则返回为true
x xor y 异或 如果x和y有且仅有一个为true则返回true
x && y 与
x || y 或
!x 非 如果x不为true,则返回true
三元运算符:
(expr1)?(expr2):(expr3)
对expr1求值为true时的值为expr2,在expr1求值为false时的值为expr3.
组合比较符:php7之后有了这个
echo 1 <=> 1; // 0echo 1 <=> 2; // -1echo 2 <=> 1; // 1 // 浮点型echo 1.5 <=> 1.5; // 0echo 1.5 <=> 2.5; // -1echo 2.5 <=> 1.5; // 1 // 字符串echo "a" <=> "a"; // 0echo "a" <=> "b"; // -1echo "b" <=> "a"; // 1
switch语句:
<?php
$favcolor="red";
switch($favcolor){
case "red":
echo"你喜欢的颜色是红色";
break;
case "blue":
echo"你喜欢的颜色是蓝色";
break;
default:
echo"你喜欢的颜色不是红,蓝!";
}
?>
php数组:
$cars=array("valv","ggg","sfsd");
echo "I like".$cars[0].",".$cars[1]."and".$cars[2].".";
echo count(cars); //数组的长度
遍历数组:
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++){
echo $cars[$x];
echo "<br>";
}
关联数组:是使用您分配给数组的指定的键的数组
两张创建关联数组的方法
$age=array("Peter"=>"35","ben"=>"37","Joe"=>"43");
or:
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
遍历关联数组
foreach($age as $x=>$x_value){
echo"Key=".$x.",Value=".$x_value;
echo "<br>";
}
对数组进行排序 sort();对数组进行升序排序 sort($cars);
php超级全局变量(php中预定义了几个超级全局变量(superglobals)),这意味着他们在一个脚本的全部作用域中都可用,你不需要特别说明,就可以在函数及类中使用
$GLOBALS 是php的一个全局变量组,在一个php脚本的全部作用域中可以访问,¥GLOBALS是一个包含了全部变量的全局组合数组,变量的名字就是数组的键
$_SERVER
$_REQUEST 用于收集HTML表单提交的数据
$_POST 广泛用于收集表单数据 $_GET
while循环语句
while($i<=5){
echo "The number is".$i."<br>";
$i++;
}
do....while 语句至少执行一次代码,然后检查条件,只要条件成立,就好重复进行循环
_LINE_ 文件中的当前行号
echo '这是第"'._LINE_>'"行'; //输出当前行数
_FILE_ 文件的完整路径和文件名
_DIR_ 文件所在的目录
_FUNCTION_ 函数名称(functon test(){echo '函数名为:'._FUNCTION_;} 输出 test )
_CLASS_ 类名
_TRAIT_ php实现了代码复用的一个方法,称为traits Trait名包括其被声明的作用区域(例如Foo\Bar)
_MENTHOD_ 类的方法名,返回该方法被定义时的名字(区分大小写)
_NAMESPACE_ 当前命名空间的名称(区分大小写)
php 命名空间(namespace)作用:
1.用户编写的代码与php内部的类/函数/常量或第三方类/函数/常量之间的名称冲突。
2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性
php面向对象:
在面向对象的程序设计(Object-oriented programming,缩写:oop)中
对象的行为,对象的形态,对象的表示
static关键字 声明类属性或方法为static(静态),可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(静态方法可以)
php表单验证
使用PHP验证客户端提交的表单数据 名字,email ,网址,备注,性别 submit
名字只能包含字母和空格,email必须是一个有效的电子邮件地址(@ .) 网址 备注 多行输入字段(文本域) 性别必选
表单元素
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
什么是$_SERVER["PHP_SELF"]变量?????
是超级全局变量,返回当前正在执行的脚本的文件名,与document root相关
所以,$_SERVER["PHP_SELF"]会发送表单数据到当前页面,而不是跳转到不同的页面
什么是htmllspecialchars()方法????
htmlspecialchars()函数把医学预定义的字符转换为HTML实体,预定义的字符为:
&(和号) 成为&
”(双引号)成为"
‘ (单引号)成为'
<(小于) 成为<
>(大于) 成为>
文本字段
名字:<input type="text" name="name">
email:<input type="text" name="email">
网址:<input type="text" name="website">
备注:<textarea name="comment" rows="5" cols="40"></textarea>
单选按钮
性别:<input type="radio"name="gender" value="female">女
<input type="radio" name="gender" value="male">男
PHP验证名称
$name=test_input($_POST["name"]);
if(!preg_match("/^[a-zA-Z]*$/",$name)){
$nameErr="只允许字母和空格";
}
preg_match 进行正则表达式匹配
PHP验证邮件
$email=test_input($_POST["email"]);
if(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)){
$emailErr="非法邮箱格式";
}
PHP验证URL
$website=test_input($_POST["website"]);
if(!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|]/i",$website)){
$websiteErr="非法的URL的地址";
}
PHP验证name,emai,URL
<?php
//定义变量并默认设置为空值
$nameErr= $emailErr= $genderErr= $websiteErr="";
$name= $email= $gender= $ comment= $website="";
if($_server["REQUESR_METHOD"]=="POST"){
if(empty($_POST["name"])){
$nameErr="Name is required";
}else{
$name=test_input($_POST["name"]);
//检测名字是否只包含字母跟空格
if(!preg_match("/^[a-zA-Z]*$/",$name)){
$nameErr="只允许字母和空格";
}
}
if(empty($_POST["comment"])){
$comment="";
}else{
$comment=test_input($_POST["comment"]);
}
if(empty($_POST["gender"])){
$genderErr="性别是必须的";
}else{
$gender=test_input($_POST["gender"]);
}
}
PHP $_GET 变 量
在PHP中,预定义的$_GET变量用于收集来自method="get"的表单中的值
PHP $_POST 变量
注释:默认情况下,post方法的发送信息的量最大值为8mb(可通过设置php.ini文件中的post_max_size进行更改)
PHP $_REQUEST变量
预定义的$_REQUEST变量包含了$_GET,$_POST,$_COOKIE的内容
$_REQUEST变量可用来收集通过GET和POST方法发送的表单数据
PHP多维数组
二维数组
$cars=array(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
<?php
$sites=array(
"runoob"=>array("菜鸟教程",“http://www.runoob.com”),
“google”=>array("google搜索","http://www.google.com")
);
print("<pre>");
print_r($sites);
print("</pre>");
?>
PHP date()函数 用于格式化时间/日期
语法:
String date(string $format[,int $timestamp])
format 规定时间戳的格式 必须
timestamp 可选 规定时间戳,默认是当前的日期和时间
d 代表一个月中的天
m 代表月(01-12)
Y 代表年(四位数)
echo date("Y/m/d")."<br>"; //2016/10/21
PHP包含文件 include和require语句
include语句和require语句用于在执行流中插入写在其他文件中的有用的代码
require生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行
include生成一个警告(E_WARNING),在错误发生后脚本会继续执行
PHP文件处理
fopen()函数用于在PHP中打开文件
代码:$file=fopen("welcome.txt","r"); //r 只读 在 文件的开头开始 r+读写,在文件的开头开始
如果fopen()无法打开指定文件,则返回0(false)
fclose()函数用于关闭打开的文件
检测文件末尾(EOF)
feof()函数检测是否已经到达文件末尾(EOF)
在循环变量未知长度的数据时,feof()函数很有用
<?php
if($_FILES["file"]["error"]>0){
echo "错误:".$_FILES["file"]["error"]."<br>";
}else{
echo"上传文件名:".$_FILES["file"]["name"]."<br>";
echo "文件类型: " . $_FILES["file"]["type"] . "<br>"; echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
}
?>
PHP Cookie 用来识别用户 cookie是一种服务器留在用户计算机上的小文件,每当同一台计算机通过浏览器请求页面时,这台计算机将会发送cookie,通过php你能创建并取回cookie的值
如何创建cookie?
setcookie()函数用于设置cookie,注释:setcookie()函数必须位于<html>标签之前
语法:setcookie(name,value,expire,path,domain);
例子:<?pho
setcookie("user","runoob",time()+3600);//cookie设置在一个小时过期
?>
注释:在发送cookie时,cookie的值会自动进行URL编码,在取回时进行自动解码。(为防止URL编码,请使用setrawcookie()取而代之)
设置cookie过期时间
<?php
$expire=time()+60*60*24*30;
setcookie("user","runoob",$expire);
?>
<html>
PHP的$_COOKIE变量用于取回cookie的值
<?php
//输出cookie的值
echo $_COOKIE["user"];
//查看所有cookie
print_r($_COOKIE);
?>
在下面的实例中,我们使用isset()函数来确认是否已设置了cookie
<html>
<head>
<meta charset="utf-8">
<title>设置cookie(runoob.com)</title>
</head>
<body>
<?php
if(isset($_COOKIE["user"]))
echo"欢迎".$_COOKIE["user"]."!<br>";
else
echo"普通访客!<br>";
?>
</body>
</html>
如何删除Cookie?
当删除cookie时,你应当使过期时期变更为过期的时间点
<?php
//设置cookie过期时间为过期1小时
setcookie("user","",time()-3600);
?>
PHP Session
session变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置,session变量存储单一用户信息,并且对于应用程序中的所有页面都是可用的
在您把用户信息存储到PHP session中之前,首先必须启动会话。
注释:session_start()函数必须位于<html>标签之前:
<?php session_start();?>
存储session变量 PHP $_SESSION变量
销毁session:(删除某些session数据) 方法:unset()或session_destroy()函数
unset()函数用于释放指定的session变量
实例:
<?php
session_start();
if(isset($_SESSION['views'])){
unset($_SESSION['views']);
}
?>
session_destroy()彻底销毁session
<?php session_destroy();?>
今天就先整理到这,明天继续