意外的php之学习笔记
什么是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 可选。
规定一个数组,包括了当发生错误时在用的每一个变量以及它们的值。