php学习笔记.docx
- 文档编号:7953826
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:12
- 大小:23.11KB
php学习笔记.docx
《php学习笔记.docx》由会员分享,可在线阅读,更多相关《php学习笔记.docx(12页珍藏版)》请在冰豆网上搜索。
php学习笔记
PHP学习笔记
PHP是一种被广泛使用的开源脚本语言;
declare(encoding='UTF-8');//定义编码方式
运行PHP工程(wampServer):
1、需要对应的web服务器
2、安装PHP
3、安装数据库
Php脚本可放置于文档中的任何位置;
Php脚本以
php开头,以?
>结尾;
在PHP中,所有用户定义的函数、类和关键词(例如if、else、echo等等)都对大小写不敏感。
但是所有定义的变量都对大小写敏感。
变量:
变量的声明用$标识符$str=”007”;,而且之后在使用变量的时候,标识符$不能丢掉,因为已经成为一个整体了。
函数之外声明的变量拥有Global(全局)作用域,只能在函数以外进行访问。
函数内部声明的变量拥有Local(局部)作用域,能在函数以内进行访问。
但是如果想在函数内访问全局变量,那么就得在函数内变量前引用global关键词,例如:
$x=1;$y=2
functiontext(){
global$x,$y;
$y=$x+$y;
}
或者:
functiontext(){
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];//关联数组模式
}
因为在名为$GLOBALS[index]的数组中存储了所有的全局变量,所以可以这样引用。
常量:
常量的值在脚本中不能改变,而且在整个脚本中都能使用,常量名不用$修饰符,常量的定义(定义时用双引号“”括起来):
define(stringconstant_name,mixedvalue,case_sensitive=true)
常量名常量值是否大小写敏感
PHP中const的使用以及与define的区别
1、const用于类成员变量定义,一旦定义且不能改变其值。
define定义全局常量,在任何地方都可以访问。
2、define不能在类中定义而const可以。
php
classTestConst{
constCOUNTRY='China';//const不能加public,static,也不需要$
static$static='Static';
publicfunctiongetCountry(){
returnself:
:
COUNTRY;//类内调用必须使用self
}
}
}
echoTestConst:
:
COUNTRY.'
';
//类外const可以直接使用class:
:
constVar的形式调用
--脚本内声明及使用-->
php
constCOUNTRY='Japan';
echoCOUNTRY.'
';
?
>
运算符:
(常规的省略)
并置:
a.b表示连接两个字符串,”hi”.”nihao”得到的结果是hinihao
X||Y可以写成XorY,同样的X&&Y可以写成XandY
PHP中=>->:
=>是数组成员访问符号
->是对象成员访问符号
比如:
$array=array("sitemap"=>"map.php");(定义键值对数组,使用"=>")//定义了一个数组,包含一个数组成员:
键名为sitemap,值为map.php
$this->$name=$value
$this在php语言里是个特定的变量,它代表了类本身,->是访问其类成员的操作符,$this->$name=$value,这句代码意思是:
将当前类的name变量的值设置为$value.
数组:
在PHP中,array()函数用于创建数组:
$cars=array("Volvo","BMW","Toyota");
获取数组的长度,获取数组的长度--count($cars)函数
strlen()----php脚本语言中取得字符串长度函数。
(javascript----length;jQuery----$("#text").val().length)
$("img").length和$("img").size()获取的值是一样的,其中img表示的是html中的标签,这样获取到的是元素(标签)的个数。
输出方式:
echo和print之间的差异:
echo-能够输出一个以上的字符串
print-只能输出一字符串,并且始终返回1
echo比print稍快,因为它没有返回值。
echo"
PHPisfun!
";
echo"This","string","was","made","withmultipleparameters.";
echo$txt1;
echo"StudyPHPat$txt2";//使用单引号也是可以得
echo"Mycarisa{$cars[0]}";//数组输出{}不显示
类(class):
Php声明对象的类,使用class关键词,类中包含属性和方法。
声明属性时,php4一般都是用var关键词,而php5以后用的大部分是public,proteced,private等关键词。
var$color;
public$color;
$_REQUEST
$_POST:
被广泛应用于收集表单数据,在HTMLform标签的指定该属性:
"method="post"。
$_GET:
被广泛应用于收集表单数据,在HTMLform标签的指定该属性:
"method="get",$_GET也可以收集URL中发送的数据。
命名空间(namespace)
命名空间(namespace)是在PHP5.3中加入的;相互之间使用use关键字进行引用
当前脚本文件的第一个命名空间前面不能有任何代码,注释都不行!
!
!
命名空间通过关键字namespace来声明。
如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。
例:
namespaceMyProject;
php
namespaceMyProject;//命名空间前出现了“”会致命错误- 命名空间必须是程序脚本的第一条语句
?
>
多个命名空间时,调用别的命名空间中的类、函数、常量时要遵循namespace的语法:
$x=\MyProject\Joe;//完全限定名称
echo\MyProject\text05();
PHP在编译脚本的时候就确定了元素所在的空间,以及导入的情况。
而在解析脚本时字符串形式调用只能认为是非限定名称和完全限定名称,而永远不可能是限定名称。
php
namespaceBlog;
//导入Common类
useBlog\Article\Common;//因为引用的关系,在使用字符串形式调用的时候一定小心
//我想使用非限定名称调用Blog\Article\Common
$common_class_name='Common';
//实际会被当作非限定名称,也就表示当前空间的Common类,但我当前类没有创建Common类
$common=new$common_class_name();//发生致命错误:
Common类不存在
//我想使用限定名称调用Blog\Article\Common
$common_class_name='Article\Common';
//实际会被当作完全限定名称,也就表示Article空间下的Common类,但我下面只定义了Blog\Article空间而不是Article空间
$common=new$common_class_name();//发生致命错误:
Article\Common类不存在
namespaceBlog\Article;
classCommon{}
?
>
注意:
在动态调用的时候,一定要注意命名空间解析后是否完整;
子空间:
命名空间的调用语法像文件路径一样是有道理的,它允许我们自定义子空间来描述各个空间之间的关系。
namespaceBlog\Article;//此处的Blog可以是你的PHP的项目的名称
namespaceBlog\MessageBoard;
//namespace关键字表示当前空间
echonamespace\PATH;///Blog/article
公共空间:
在一个命名空间里引入另外一个PHP脚本,脚本里的元素不会归属到这个命名空间。
如果这个脚本里没有定义其它命名空间,它的元素就始终处于公共空间中:
而且对公共空间内的类、函数、常量的调用必须在要调用的类、函数、常量的前面加\符号,$filter_XSS=new\FilterXSS();
//正确,否则出现致命错误:
找不到Blog\Article\FilterXSS类
PHP 表单和用户输入
PHP中的$_GET和$_POST(超级全局变量)变量用于检索表单中的信息,比如用户输入。
$_POST被广泛应用于收集表单数据,在HTMLform标签的指定该属性:
"method="post"。
$_GET同样被广泛应用于收集表单数据,在HTMLform标签的指定该属性:
"method="get"。
$_GET也可以收集URL中发送的数据。
此外:
$_REQUEST用于收集HTML表单提交的数据。
$_REQUEST变量可用来收集通过GET和POST方法发送的表单数据。
//以下代码表示传参给这个PHP文件本身(也就是传给自己并接收)
phpecho$_SERVER['PHP_SELF'];? >"> Name: $name=$_REQUEST['fname']; $name=$_POST['fname']; 考虑到系统的安全性,避免$_SERVER['PHP_SELF']被利用: $_SERVER["PHP_SELF"]可以通过htmlspecialchars()函数来避免被利用。 htmlspecialchars()函数把一些预定义的字符转换为HTML实体。 phpechohtmlspecialchars($_SERVER["PHP_SELF"]);? >"> if($_SERVER["REQUEST_METHOD"]=="POST"){} 会通过$_SERVER["REQUEST_METHOD"]来检测表单是否被提交。 如果REQUEST_METHOD是POST或者GET PHP 多维数组 一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。 依照这种方式,我们可以创建二维或者三维数组 $arryone=array('01','02','03'); $arrytwo=array( array("first","second","three"), array("第一","第二","第三") ); echo$arryone[0]." echo$arrytwo[0][1]." for($x=0;$x echo$arryone[$x]." } current($arryone)//输出数组的第一个元素--01 end($arryone)//输出数组的最后一个元素--03 explode()函数把字符串分割为数组。 $arryone=array('01','02','03'); print_r($arryone);//另一种打印方式 输出: Array([0]=>01[1]=>02[2]=>03) echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print只能打印出简单类型变量的值(如int,string) print_r可以打印出复杂类型变量的值(如数组,对象) PHPinclude和require语句 在PHP中,您可以在服务器执行PHP文件之前在该文件中插入一个文件的内容。 include和require语句用于在执行流中插入写在其他文件中的有用的代码。 include和require除了处理错误的方式不同之外,在其他方面都是相同的: ∙require生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。 ∙include生成一个警告(E_WARNING),在错误发生后脚本会继续执行。 包含文件省去了大量的工作。 这意味着您可以为所有网页创建标准页头、页脚或者菜单文件。 然后,在页头需要更新时,您只需更新这个页头包含文件即可。 phpinclude'header.php';? > Sometext.
";
";
";Welcometomyhomepage!
PHP 文件上传
upload_file.php文件代码:
php
if($_FILES["file"]["error"]>0)
//$_FILES["file"]["error"]有五种值0.1.2.3.4
{
echo"Error:
".$_FILES["file"]["error"]."
";
}
else
{
echo"Upload:
".$_FILES["file"]["name"]."
";
echo"Type:
".$_FILES["file"]["type"]."
";
echo"Size:
".($_FILES["file"]["size"]/1024)."kB
";
echo"Storedin:
".$_FILES["file"]["tmp_name"];
}
?
>
第一个参数是上传过来的表单的input标签的name属性的ID,第二个下标可以是"name"、"type"、"size"、"tmp_name"或"error"。
如下所示:
∙$_FILES["file"]["name"]-获取被上传文件的名称
∙$_FILES["file"]["type"]-获取被上传文件的类型
∙$_FILES["file"]["size"]-获取被上传文件的大小,以字节计
∙$_FILES["file"]["tmp_name"]-存储在服务器的文件的临时副本的名称
∙$_FILES["file"]["error"]-由文件上传导致的错误代码
PHP Cookies(Sessions)
cookie常用于识别用户。
cookie是一种服务器留在用户计算机上的小文件。
每当同一台计算机通过浏览器请求页面时,这台计算机将会发送cookie。
通过PHP,您能够创建并取回cookie的值。
setcookie(name,value,expire(期满),path,domain);
PHP的$_COOKIE变量用于取回cookie的值。
//setcookie()函数必须位于标签之前。
time()函数返回当前时间的Unix时间戳。
//返回的是一个整数,返回自从Unix纪元(格林威治时间1970年1月1日00:
00:
00)到当前时间的总秒数。
当删除cookie时,您应当使过期日期变更为过去的时间点。
isset():
函数检测是否已设置"views"变量,功能:
检测变量是否设置 :
若变量不存在则返回FALSE
若变量存在且其值为NULL,也返回FALSE
若变量存在且值不为NULL,则返回TURE
PHP Sessions(Cookies)
1、PHPsession变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。
Session变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。
2、Session的工作机制是:
为每个访客创建一个唯一的id(UID),并基于这个UID来存储变量。
UID存储在cookie中,或者通过URL进行传导。
3、然而,会话信息是临时的,在用户离开网站后将被删除。
如果您需要永久存储信息,可以把数据存储在数据库中。
在您把用户信息存储到PHPsession中之前,首先必须启动会话。
注释:
session_start()函数必须位于标签之前:
php
session_start();//storesessiondata
$_SESSION['views']=1;
?
>
存储和取回session变量的正确方法是使用PHP$_SESSION变量:
4、销毁Session:
如果您希望删除某些session数据,可以使用unset()或session_destroy()函数。
unset()函数用于释放指定的session变量:
unset($_SESSION['views']);
php
session_destroy();
//session_destroy()将重置session,您将失去所有已存储的session数据。
?
>
try{
//thrownewException("$emailisanexamplee-mail");
}catch(Exception$e){
echo"Message:
".$e->getMessage();
}
PHP 过滤器
PHP过滤器用于验证和过滤来自非安全来源的数据,比如用户的输入。
什么是外部数据?
∙来自表单的输入数据
∙Cookies
∙Webservicesdata
∙服务器变量
∙数据库查询结果
如需过滤变量,请使用下面的过滤器函数之一:
∙filter_var()-通过一个指定的过滤器来过滤单一的变量
∙filter_var_array()-通过相同的或不同的过滤器来过滤多个变量
∙filter_input-获取一个输入变量,并对它进行过滤
∙filter_input_array-获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤
∙
---------多个参数的过滤---------------->
∙
php
∙//定义过滤数组
∙$filters=array
∙(
∙"name"=>array
∙(
∙"filter"=>FILTER_SANITIZE_STRING
∙),
∙"age"=>array
∙(
∙"filter"=>FILTER_VALIDATE_INT,
∙"options"=>array
∙(
∙"min_range"=>1,
∙"max_range"=>120
∙)
∙),
∙"email"=>FILTER_VALIDATE_EMAIL
∙);
∙//使用多参数过滤函数,返回结果【数组】,键值对数组
∙//filter_input_array()函数从脚本外部获取多项输入,并进行过滤。
∙//如果成功,则返回被过滤的数据,如果失败,则返回false。
∙$result=filter_input_array(INPUT_GET,$filters);
∙
∙if(!
$result["age"])
∙{
∙echo("Agemustbeanumberbetween1and120.
");
∙}
∙elseif(!
$result["email"])
∙{
∙echo("E-Mailisnotvalid.
");
∙}
∙else
∙{
∙echo("Userinputisvalid");
∙}
∙?
>
PHPJSON
json_encode
对变量进行JSON编码
json_decode
对JSON格式的字符串进行解码,转换为PHP变量
//定义json数据
$json='{"a":
1,"b":
2,"c":
3,"d":
4,"e":
5}';
echo$json;
//定义数组并转换成json数据
$jsonarry=array(
"a"=>1,
"b"=>2,
"c"=>3,
"d"=>4,
"e"=>5
);
echojson_encode($emp);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- php 学习 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)