意外的php之学习笔记

时间:2023-03-09 17:51:36
意外的php之学习笔记

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.****.net/gc_gongchao/article/details/37312039

 

 

什么是php?

php是指超文本预处理器。php是一种server端的脚本语言,php脚本在server上运行。

什么是php文件?

php文件可包括文本、HTML标签以及脚本,php文件向浏览器返回纯粹的HTML,php文件的文件后缀是”.php”、”.php3”或”.phtml
”。

你无法在浏览器中通过查看源文档的方式来查看php的源码。

你仅仅能看到php文件的输出。即纯粹的HTML。这是由于在结果返回浏览器之前。脚本就已经在server运行了。

主要的php语法:

php的脚本块以<?php開始。以?>结束。你能够把php的脚本块放置在文档中的不论什么位置。

当然,在支持简写的server上。你能够使用<?和?>来開始和结束脚本块,只是为了达到最好的兼容性。我们推荐你使用标准形式(<?php),而不是简写形式。

php文件一般会包括HTML标签。就像一个HTML文件。以及一些php脚本代码。

php中的每一个代码行都必须以分号。分号是一种分隔符,用于把指令集区分开来。

有两种通过php来输出文本的基础指令:echo和print。一般使用echo。

php变量

变量用于存储值,比方数字、字符串或函数的结果。这样我们就能够在脚本中多次使用它们了。

php中的变量

变量用于存储值,比方数字、文本字符串或数组

一旦设置了某个变量,我们就能够在脚本中反复地使用它。

php中的全部变量都是以$符号開始的。

php是一门松散类型的语言

在php中。不须要在设置变量之前声明该变量

依据变量被设置的方式,php会自己主动地把变量转换成正确的数据类型。

在强类型的编程语言中,你必须在使用前声明变量的类型和名称。

在php中。变量会在使用时被自己主动声明。

变量的命名规则:

变量名必须以字母或下划线”_”开头

变量名仅仅能包括字母数字字符以及下划线

变量名不能包括空格。假设变量名由多个单词组成,那么应该使用下划线进行分隔,或者以大写字母开头。

php字符串

字符串变量用于存储并处理文本片段。

php中的字符串

字符串变量用于包括字符串的值。

在创建字符串之后。我们就能够对它进行操作了。你能够直接在函数中使用字符串,或者把它存储在变量中。

并置运算符

在php中。仅仅有一个字符串运算符。并置运算符(.)用于把两个字符串值连接起来。要把两个变量连接在一起,请使用这个点运算符(.)。

使用strlen()函数

strlen()函数用于计算字符串的长度

 

字符串的长度信息经常常使用在循环或其它函数中。由于那时确定字符串何时结束是非常重要的。

使用strpos()函数

strops()函数用于在字符串内检索一段字符串或一个字符。

假设在字符串中找到匹配,该函数会返回第一个匹配的位置。假设未找到匹配,则返回FALSE。

php数组

数组能够在单独的变量名中存储一个或多个值。

什么是数组?

在使用php进行开发的过程中,或早或晚,你会须要创建很多类似的变量。

无需非常多类似的变量。你能够把数据作为元素存储在数组中。

数组中的元素都有自己的ID,因此能够方便地訪问它们。

有三种数组类型:
数值数组

带有数字ID键的数组

关联数组

数组中的每一个 ID键关联一个值

多维数组

包括一个或多个数组的数组

关联数组:关联数组。它的每一个 ID键都关联一个值。在存储有关详细命名的值的数据时。使用数值数组不是最好的做法。通过关联数组。我们能够把值作为键,并向它们赋值。

php中的foreach语句

foreach语句用于循环遍历数组,每进行一次循环,当前数组元素的值就会被赋值给value变量(数组指针会逐一地移动)----以此类推。

语法:
foreach(array as value)

{

code to be executed;s
}

php函数

php的真正威力源自于它的函数。

在php中。提供了超过700个内建的函数。

创建php函数

函数是一种能够在不论什么被须要的时候运行的代码块

创建php函数

1.全部的函数都使用关键词”function”来開始

2.命名函数-函数的名称应该提示出它的功能。函数名称以字母或下划线开头。

3.加入”{”-开口的花括号之后的部分是函数的代码

4.插入函数代码

5.加入一个“}”-函数通过关闭花括号来结束。

PHP函数的參数与返回值的类型都不须要指定,由于php是松散类型的语言,它会自己主动指定正确的数据类型。

php表单和用户输入

PHP的$_GET和$_POST用于检索表单中的值,比方用户输入。

表单验证

应该在不论什么可能的时候对用户输入进行验证。

client的验证速度更快,而且能够减轻server的负载。

只是。不论什么流量非常高以至于不得不操心server资源的网站,也有必要操心网站的安全性。假设表单訪问的是数据库,就非常有必要採用server端的验证。在server验证表单的一种好的方式是。把表单传给它自己,而不是跳转到不同的页面。

这样用户就能够在同一张表单页面得到错误信息。

用户也就更easy发现错误了。

php中的 $_GET

$_GET变量用于收集来自method=”get”的表单中的值。

$_GET变量

$_GET变量是一个数组,内容是由HTTP  GET方法发送的变量名称和值

$_GET变量用于收集来自method=”get”的表单中的值。从带有GET方法的表单发送的信息,对不论什么人都是可见的(会显示在浏览器的地址栏),而且对发送的信息量也有限制(最多100个字符)。

为什么使用$_GET

凝视:在使用$_GET变量时,全部的变量名和值都会显示在URL中。所以在发送password或其它敏感信息时,不应该使用这种方法。只是。正由于变量显示在URL中。因此能够在收藏夹中收藏该页面。

在某些情况下,这是非常实用的。

注意:HTTP GET方法不适合大型的变量值;值是不能超过100个字符的

$_REQUEST变量

PHP的$_REQUEST变量包括了$_GET,$_POST以及$_COOKIE的内容。

PHP的$_REQUEST变量可用来取得通过 GET和POST方法发送的表单数据的结果。

PHP $_POST

$_POST变量用于收集来自method=”post”的表单中的值。

$_POST变量

$_POST变量是一个数组,内容是由HTTP POST方法发送的变量名称和值。

 

$_POST变量用于收集来自method=”post”的表单中的值。

从带有 POST方法的表单发送的信息,对不论什么人都是不可见的(不会显示在浏览器的地址栏),而且对发送信息的量也没有限制。

为什么使用$_POST

通过HTTP  POST发送的变量不会显示在URL中。

变量没有长度限制。只是,由于变量不显示在URL中。所以无法把页面加入书签。

PHP Date()

PHP 的date()函数用于格式化时间或日期。

PHP Date()函数

PHP Date()函数可把时间戳格式化为可读性更好的日期和时间。

语法:date(format,timestamp)

參数format必需。规定时间戳的格式。

參数 timestamp可选。规定时间戳。

默认是当前的日期和时间。

PHP日期----什么是时间戳

时间戳是自1970年1月1日以来的秒数。它也被称为Unix时间戳。

PHP日期---格式化日期

date()函数的第一个參数规定了怎样格式化日期/时间。它使用字母来表示日期和时间的格式。这里列出了一些可用的字母:
d—月中的天(01-31)

m---当前月,以数字计(01-12)

Y----当前的年(四位数)

能够在字母之间插入其它字符,比方“/”、“.”或者”-”,这样就能够添加附加格式了。

php日期—加入时间戳

date()函数的第二个參数规定了一个时间戳。此參数是可选的。假设你没有提供时间戳,当前的时间将被使用。

php中的mktime()函数可为指定的日期返回Unix时间戳

语法:mktime(hour,minute,second,month,day,year,is_dst)

PHP Inlcude文件

server端包括(SSI)用于创建可在多个页面反复使用的函数、页眉、页脚或元素。

PHP include和require语句

在 PHP中。你能够在server运行 PHP文件之前把该文件插入还有一个PHP文件里。

include和require语句用于在运行流中向其它文件插入实用的代码。

include和require非常类似。除了在错误处理方面的差异:

require会产生致命错误(E_COMPILE_ERROR)。并停止脚本。

include仅仅会产生警告(E_WARNING),脚本将继续。

因此。假设你希望继续运行,并向用户输出结果,即使包括文件已丢失,那么请使用include。否则,在框架、CMS或者复杂的PHP应用程序编译中,请始终使用require向运行流引用重要文件。这有助于提高应用程序的安全性和完整性。在某个重要文件意外丢失的情况下。

包括文件省去了大量的工作。这意味着你能够为全部页面创建标准页头、页脚或者菜单文件。

然后。在页头须要更新时,你仅仅须要更新这个页头包括文件就可以。

注:在包括定义变量的包括文件时。这些变量能够用在调用文件里。

PHP文件处理:

fopen()函数用于在PHP中打开文件。

打开文件

fopen()函数用于在php中打开文件。此函数的第一个參数含有要打开的文件的名称,第二个參数规定了使用哪种模式来打开文件。

fclose()函数用于关闭打开的文件。

检測End-of-file

feof()函数检測是否已达到文件的末端(EOF)

在循环遍历未知长度的数据时,feof()函数非常实用。

注意:在w、a以及x模式。你无法读取打开的文件。

逐行读取文件:

fgets()函数用于从文件里逐行读取文件。

注:在调用该函数之后。文件指针会移动到下一行。

逐字符读取文件:
fgetc()函数用于从文件逐字符地读取文件。注:在调用该函数之后。文件指针会移动到下一个字符。

PHP文件上传:
通过PHP。能够把文件上传到server。

创建一个文件上传表单

同意用户从表单上传文件时非常实用的。

<form>标签的enctype属性规定了在提交表单时要使用哪种内容类型。在表单须要二进制数据时,比方文件内容。请使用”multipart/form-data”.

<input>标签的type=”file”属性规定了应该把输入作为文件来处理。

注:同意用户上传文件时一个巨大的安全风险。请仅仅同意可信的用户运行文件上传操作。

创建上传脚本:

通过使用php的全局数组$_FILES,你能够从客户计算机向远程server上传文件。

第一个參数是表单的input name,第二个下标能够是”name”,”type”,”size”,”tmp_name”或”error”。

就像这样:
$_FILES[“file”][“name”]-被上传文件的名称。

$_FILES[“file”][“type”]-被上传文件的类型。

$_FILES[“file”][“size”]-被上传文件的大小,以字节计。

$_FILES[“file”][“tmp_name”]-存储在server的文件的暂时副本的名称。

$_FILES[“file”][“error”]-由文件上传导致的错误代码。

这是一种非常easy文件上传方式。基于安全方面的考虑,你应当添加有关什么用户有权上传文件的限制。

 

 

cookie经常使用于识别用户

什么是Cookie?

cookie经常使用于识别用户。cookie是server留在用户计算机中的小文件。每当同样的计算机通过浏览器请求页面时,它同一时候会发送cookie。

通过php,你能够创建并取回cookie的值。

怎样创建cookie?

setcookie()函数用于设置cookie。

注意:setcookie()函数必须位于<html>标签之前。

语法:setcookie(name,value,expire,path,domain);

凝视:在发送cookie时,cookie的值会自己主动进行URL编码,在取回时进行自己主动解码(为防止URL编码,请使用setrawcookie()取而代之)。

怎样取回Cookie的值?

PHP的$_COOKIE变量用于取回cookie的值。

怎样删除cookie?

当删除cookie时。你应当使过期日期变更为过去的时间点。

PHP Sessions

PHP Session变量用于存储有关用户会话的信息,或更改用户会话的设置。Session变量保存的信息是单一用户的,而且可供应用程序中的全部页面使用。

PHP Session变量

当你运行一个应用程序时,你会打开它。做些更改,然后关闭它。这非常像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。可是在因特网上。存在一个问题:server不知道你是谁以及你做什么,这是由于HTTP地址不能维持状态。

通过在server上存储用户信息以便随后使用,PHP session攻克了这个问题(比方username称、购买商品等)。只是。会话信息是暂时的,在用户离开网站后将被删除。假设你须要永久存储信息,能够把数据存储在数据库里。

 

Session的工作机制是:为每一个訪问者创建一个唯一的id(UID)。并基于这个UID来存储变量。UID存储在cookie中。亦或通过URL进行传导。

開始PHP Session

在你把用户信息存储到PHP Session中之前,首先必须启动会话。

凝视:session_start()函数必须位于<html>标签之前。

假设你希望删除某些Session数据。能够使用unset()或session_destroy()函数。

PHP发送电子邮件

php同意你从脚本直接发送电子邮件

php mail()函数

php mail()函数用于从脚本中发送电子邮件。

mail(to,subject,message,headers,parameters);

to 必需。规定email接收者。

subject 必需。规定email的主题。凝视:该參数不能包括不论什么新行字符。

message 必需。定义要发送的消息。应使用LF(\n)来分隔各行。

headers 可选。规定附加的标题,比方From、Cc以及Bcc。应当使用CRLF(\r\n)分隔附加的标题

parameters 可选。对邮件发送程序规定额外的參数。

注意:PHP须要一个已安装且正在运行的邮件系统,以便使邮件函数可用。所用的程序通过在php.ini文件里的配置设置进行定义。

这个php.ini文件暂时没有找到

PHP错误处理

在PHP中,默认的错误处理非常easy。一条消息会被发送到浏览器,这条消息带有文件名称、行号以及一条描写叙述错误的消息。

php错误处理

在创建脚本和web应用程序时,错误处理是一个重要的部分。假设你的代码缺少错误检測编码,那么程序看上去非常不专业,也为安全风险敞开了大门。

PHP中错误处理方法:

l  简单的”die()”语句。

l  自己定义错误和错误触发器

l  错误报告

主要的错误处理:使用die()函数

创建自己定义错误处理器

创建一个自己定义的错误处理器非常easy。

我们非常easy地创建了一个专用函数,能够在PHP中发生错误时调用该函数。

该函数必须有能力处理至少两个參数,可是能够接受最多五个參数(可选的:file,line-number以及error context);

语法:error_function(error_level,error_message,error_file,error_line,error_context)

error_level 
必需。为用户定义的错误规定错误报告级别。

必须是一个值数。

error_message 
必需。

为用户定义的错误规定错误消息。

error_file 可选。规定错误在当中发生的文件名称。

error_line  可选。规定发生错误的行号。

error_context
可选。

规定一个数组,包括了当发生错误时在用的每一个变量以及它们的值。