首页 > 代码库 > 意外的php之学习笔记

意外的php之学习笔记

没有想到的事,现在我从事的工作不是Android而是php开发,而且老总的要求,这个网站压根不可能执行。总之一个不懂技术的人,还总要按照自己的想法去要求,换成任何一个技术人员都会崩溃的,其余的不多说,就把我前段时间花了两天时间学习的php知识做个备份吧,以便以后使用。

 

什么是php

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

什么是php文件?

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

你无法在浏览器中通过查看源文档的方式来查看php的源代码。你只能看到php文件的输出,即纯粹的HTML。这是因为在结果返回浏览器之前,脚本就已经在服务器执行了。

基本的php语法:

php的脚本块以<php开始,以?>结束。你可以把php的脚本块放置在文档中的任何位置。

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

php文件通常会包含HTML标签,就像一个HTML文件,以及一些php脚本代码。

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

有两种通过php来输出文本的基础指令:echoprint。一般使用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用于检索表单中的值,比如用户输入。

表单验证

应该在任何可能的时候对用户输入进行验证。客户端的验证速度更快,并且可以减轻服务器的负载。不过,任何流量很高以至于不得不担心服务器资源的站点,也有必要担心站点的安全性。如果表单访问的是数据库,就非常有必要采用服务器端的验证。在服务器验证表单的一种好的方式是,把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。

php中的 $_GET

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

$_GET变量

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

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

为什么使用$_GET

注释:在使用$_GET变量时,所有的变量名和值都会显示在URL中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在URL中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

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

$_REQUEST变量

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

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

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日期----什么是时间戳

时间戳是自197011日以来的秒数。它也被称为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文件

服务器端包含(SSI)用于创建可在多个页面重复使用的函数、页眉、页脚或元素。

PHP includerequire语句

PHP中,你能够在服务器执行 PHP文件之前把该文件插入另一个PHP文件中。

includerequire语句用于在执行流中向其他文件插入有用的代码。

includerequire很相似,除了在错误处理方面的差异:

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

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

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

包含文件省去了大量的工作。这意味着你可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,你只需要更新这个页头包含文件即可。

注:在包含定义变量的包含文件时,这些变量可以用在调用文件中。

PHP文件处理:

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

打开文件

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

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

检测End-of-file

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

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

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

逐行读取文件:

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

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

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

PHP文件上传:
通过PHP,可以把文件上传到服务器。

创建一个文件上传表单

允许用户从表单上传文件时非常有用的。

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

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

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

创建上传脚本:

通过使用php的全局数组$_FILES,你可以从客户计算机向远程服务器上传文件。

第一个参数是表单的input name,第二个下标可以是”name”,”type”,”size”,”tmp_name””error”。就像这样:
$_FILES[“file”][“name”]-被上传文件的名称。

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

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

$_FILES[“file”][“tmp_name”]-存储在服务器的文件的临时副本的名称。

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

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

 

 

cookie常用于识别用户

什么是Cookie

cookie常用于识别用户。cookie是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送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变量

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

通过在服务器上存储用户信息以便随后使用,PHP session解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果你需要永久存储信息,可以把数据存储在数据库里。

 

Session的工作机制是:为每个访问者创建一个唯一的idUID),并基于这个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 可选。规定附加的标题,比如FromCc以及Bcc。应当使用CRLF(\r\n)分隔附加的标题

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

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

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

PHP错误处理

PHP中,默认的错误处理很简单。一条消息会被发送到浏览器,这条消息带有文件名、行号以及一条描述错误的消息。

php错误处理

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

PHP中错误处理方法:

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

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

l  错误报告



基本的错误处理:使用die()函数

创建自定义错误处理器

创建一个自定义的错误处理器非常简单。我们很简单地创建了一个专用函数,可以在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 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。