首页技术php教程文档(PHP教程)

php教程文档(PHP教程)

编程之家2026-06-29624次浏览

本篇文章给大家谈谈php教程文档,以及PHP教程对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

php教程文档(PHP教程)

php高级教程

php高级教程

php是it行业语言,也是一门较热的网络技术,下面就由我为大家介绍一下php高级教程,欢迎大家阅读!

一、PHP-多维数组:

$cars= array(

array("huawei","12","11"),

array("meizu","23","12"),

php教程文档(PHP教程)

array("iphone","12","4")

);

$title= array("手机总共有:","个,已经卖出去了","个!");

for($i=0;$i{ for($j=0;$j{ echo$cars[$i][$j]; echo$title[$j];} echo"";}?>

输出:

huawei手机总共有:12个,已经卖出去了11个!

php教程文档(PHP教程)

meizu手机总共有:23个,已经卖出去了12个!

iphone手机总共有:12个,已经卖出去了4个!

二、PHP日期和时间

date()函数的格式参数是必需的,它们规定如何格式化日期或时间。

下面列出了一些常用于日期的字符:

·d-表示月里的某天(01-31) D-表示当前这天的英文星期简写

·m-表示月(01-12) M-表示当前月的英文缩写

·Y-表示年(四位数) y-表示年(后两位数)

·1-表示周里的某天 L-返回0

其他字符,比如"/","."或"-"也可被插入字符中,以增加其他格式。

echo"今天是". date("YYYY/m/d")."";//2017201720172017/06/26由此可见不能用js中yyyy-mm-dd的形式

echo"今天是". date("Y.m.d")."";//2017.06.26

echo"今天是". date("Y-M-D")."";//17-Jun-Mon

echo"今天是". date("l")."";//Monday星期全称

echo"今天是". date("L")."";//0

?>

获得简单的时间

下面是常用于时间的字符:

date_default_timezone_set("Asia/Shanghai");//设置时区

echo date_default_timezone_get(oid);//获取当前时区

·h-带有首位零的 12小时小时格式 H-24小时格式

·i-带有首位零的分钟 I-0

·s-带有首位零的秒(00-59) S-返回th我也不知道是什么鬼

·a-小写的午前和午后(am或 pm) A-返回大写格式:AM或PM

echo"现在是". date("h:i:sa")."";//现在是 02:15:44pm

echo"现在是". date("H:I:SA")."";//现在是 14:0:thPM

通过 PHP mktime()创建日期

date()函数中可选的时间戳参数规定时间戳。如果您未规定时间戳,将使用当前日期和时间

语法

mktime(hour,minute,second,month,day,year)

$d=mktime(9,12, 31, 6, 10, 215);

echo"创建日期是". date("Y-m-d h:i:sa",$d)."";//在date方法里面传参则取的是参数中的时间,如果不传的话则取的是当前时间

通过 PHP strtotime()用字符串来创建日期

PHP strtotime()函数用于把人类可读的字符串转换为Unix时间。

$d=strtotime("10:38pm April 15 2015");

echo"创建日期是". date("Y-m-d h:i:sa",$d);

如果输入了它不能识别的字符串则保存为 1970-01-01 12:00:00am

计算两个时间段内的时间所有的周六

$startdate= strtotime("Saturday");

$enddate= strtotime("+6 weeks",$startdate);

while($startdate<$enddate){

echo date("M d",$startdate),"";

$startdate= strtotime("+1 week",$startdate);//在$startdate基础上加一个礼拜,你还可以加1天,1个月,1年

}

?>

计算距离某一天还有多长时间

$d1=strtotime("2017-7-30");

$d2=ceil(($d1-time())/60/60/24);

echo"距离十二月三十一日还有:".$d2."天。";

?>

三、PHP Cookies

cookie常用于识别用户。cookie是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie的值。

创建cookie

setcookie()函数用于设置 cookie。

注释:setcookie()函数必须位于

标签之前。

语法

setcookie(name, value, expire, path, domain);

在下面的例子中,我们将创建名为"user"的 cookie,把为它赋值"Alex Porter"。我们也规定了此 cookie在一小时后过期:

setcookie("user","Alex Porter", time()+3600);

?>

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

取回 Cookie的值

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

// Print a cookie

echo$_COOKIE["user"];

// A way to view all cookies

print_r($_COOKIE);

?>

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

// set the expiration date to one hour ago

setcookie("user","", time()-3600);

?>

如果浏览器不支持 cookie该怎么办?

如果您的应用程序涉及不支持cookie的浏览器,就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。一种方式是从表单传递数据(有关表单和用户输入的内容,稍早前我们已经在本教程中介绍过了)。

下面的表单在用户单击提交按钮时向"welcome.php"提交了用户输入:

Name:

Age:

取回"welcome.php"中的值,就像这样:

Welcome.

You are years old.

四、PHP Sessions

PHP Session变量

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

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

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

开始 PHP Session

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

注释:session_start()函数必须位于

标签之前:

上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。

存储 Session变量

存储和取回session变量的正确方法是使用 PHP$_SESSION变量:

session_start();

// store session data

$_SESSION['views']=1;

?>

//retrieve session data

echo"Pageviews=".$_SESSION['views'];

?>

输出:

Pageviews=1

在下面的例子中,我们创建了一个简单的 page-view计数器。isset()函数检测是否已设置"views"变量。如果已设置"views"变量,我们累加计数器。如果"views"不存在,则我们创建"views"变量,并把它设置为 1:

session_start();

if(isset($_SESSION['views']))

$_SESSION['views']=$_SESSION['views']+1;

else

$_SESSION['views']=1;

echo"Views=".$_SESSION['views'];

?>

终结 Session

如果您希望删除某些session数据,可以使用 unset()或 session_destroy()函数。

unset()函数用于释放指定的 session变量:

unset($_SESSION['views']);

?>

您也可以通过session_destroy()函数彻底终结 session:

session_destroy();

?>

注释:session_destroy()将重置 session,您将失去所有已存储的session数据。

五、PHP错误处理

错误处理方法:

·简单的"die()"语句

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

·错误报告

为了避免用户获得类似上面的错误消息,我们在访问文件之前检测该文件是否存在:

if(!file_exists("welcome.txt"))

{

die("File not found");

}

else

{

$file=fopen("welcome.txt","r");

}

?>

假如文件不存在,您会得到类似这样的错误消息:

File not found

比起之前的代码,上面的代码更有效,这是由于它采用了一个简单的错误处理机制在错误之后终止了脚本。

不过,简单地终止脚本并不总是恰当的方式。让我们研究一下用于处理错误的备选的 PHP函数。

创建自定义错误处理器

创建一个自定义的错误处理器,可以在PHP中发生错误时调用该函数。

该函数必须有能力处理至少两个参数(error level和 error message),但是可以接受最多五个参数(可选的: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:可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。

创建错误处理函数

function customError($errno,$errstr)

{

echo"Error: [$errno]$errstr

";

echo"Ending Script";

die();

}

现在,我们已经创建了一个错误处理函数,我们需要确定在何时触发该函数。

Set ErrorHandler

PHP的默认错误处理程序是内建的错误处理程序。我们打算把上面的函数改造为脚本运行期间的默认错误处理程序。

可以修改错误处理程序,使其仅应用到某些错误,这样脚本就可以不同的方式来处理不同的错误。不过,在本例中,我们打算针对所有错误来使用我们的自定义错误处理程序:

set_error_handler("customError");

由于我们希望我们的自定义函数来处理所有错误,set_error_handler()仅需要一个参数,可以添加第二个参数来规定错误级别。

//定义错误处理函数

function customError($errno,$errstr)

{

echo"rror: [$errno]$errstr";

}

//设置错误处理函数

set_error_handler("customError");

//触发错误

echo($test);

?>

可能的错误类型:

·E_USER_ERROR-致命的用户生成的run-time错误。错误无法恢复。脚本执行被中断。

·E_USER_WARNING-非致命的用户生成的run-time警告。脚本执行不被中断。

·E_USER_NOTICE-默认。用户生成的`run-time通知。脚本发现了可能的错误,也有可能在脚本运行正常时发生。

例子

在本例中,如果"test"变量大于"1",则发生E_USER_WARNING错误。如果发生了 E_USER_WARNING,我们将使用我们的自定义错误处理程序并结束脚本:

//error handler function

function customError($errno,$errstr)

{

echo"Error: [$errno]$errstr

";

echo"Ending Script";

die();

}

//set error handler

set_error_handler("customError",E_USER_WARNING);

//trigger error

$test=2;

if($test>1)

{

trigger_error("Value must be 1 or below",E_USER_WARNING);

}

?>

错误记录

通过 E-Mail发送错误消息

function customError($errno,$errstr)

{

echo"Error: [$errno]$errstr";

echo"Webmaster has been notified";

error_log("Error: [$errno]$errstr",1,

"526369948@qq.com","From: 526369948@qq.com");

}

六、PHP异常处理

异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程。这种情况称为异常。

当异常被触发时,通常会发生:

·当前代码状态被保存

·代码执行被切换到预定义的异常处理器函数

·根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本

我们将展示不同的错误处理方法:

·异常的基本使用

·创建自定义的异常处理器

·多个异常

·重新抛出异常

·设置顶层异常处理器

Try, throw和 catch

要避免上面例子出现的错误,我们需要创建适当的代码来处理异常。

正确的处理程序应当包括:

1.Try-使用异常的函数应该位于"try"代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。

2.Throw-这里规定如何触发异常。每一个"throw"必须对应至少一个"catch"

3.Catch-"catch"代码块会捕获异常,并创建一个包含异常信息的对象

让我们触发一个异常:

//创建可抛出一个异常的函数

function checkNum($number)

{

if($number>1)

{

throw new Exception("Value must be 1 or below");

}

return true;

}

//在"try"代码块中触发异常

try

{

checkNum(2);//如果抛出异常则执行catch中的语句,这里就不接着往下执行了

//If the exception is thrown, this text will not be shown

echo'If you see this, the number is 1 or below';

}

//捕获异常

catch(Exception$e)

{

echo'Message:'.$e->getMessage();

}

?>

上面代码将获得类似这样一个错误:

Message: Value must be 1 or below

创建一个自定义的 Exception类

创建自定义的异常处理程序非常简单。我们简单地创建了一个专门的类,当 PHP中发生异常时,可调用其函数。该类必须是 exception类的一个扩展。

这个自定义的exception类继承了 PHP的 exception类的所有属性,您可向其添加自定义的函数。

我们开始创建exception类:

class customException extends Exception//extends相当于继承关键字

{

public function errorMessage()//定义了自己的报错函数

{

//error message在继承的类中,可以访问基类的方法

$errorMsg='Error on line'.$this->getLine().' in'.$this->getFile()

.':'.$this->getMessage().' is not a valid E-Mail address';

return$errorMsg;

}

}

$email="someone@example...com";

try

{

//check if

if(filter_var($email, FILTER_VALIDATE_EMAIL)=== FALSE)

{

//throw exception if email is not valid

throw new customException($email);

}

}

catch(customException$e)

{

//display custom message

echo$e->errorMessage();

}

?>

这个新的类是旧的exception类的副本,外加 errorMessage()函数。正因为它是旧类的副本,因此它从旧类继承了属性和方法,我们可以使用 exception类的方法,比如 getLine()、getFile()以及 getMessage()。

多个异常

可以为一段脚本使用多个异常,来检测多种情况。

可以使用多个if..else代码块,或一个 switch代码块,或者嵌套多个异常。这些异常能够使用不同的 exception类,并返回不同的错误消息:

php是什么

PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。

简介

PHP是能让你生成动态网页的工具之一。PHP代表:超文本预处理器(PHP:Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点()自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到,也可以查阅网页陶吧的“PHP安装全攻备”专题文章。安装过程很简单。

如果你的机器解决了2000问题,那么PHP也一样没有千年虫问题!

历史

三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。

PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。现在,PHP4正式版已经发布,大家可以到php的官方站点上去下载。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点()了解更多。

PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。

PHP的先进之处

应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点:

学习过程

我个人更喜欢PHP的非常简单的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。

PHP的语法类似于C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。

你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。

数据库连接

PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。

可扩展性

就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。

面向对象编程

PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。

可伸缩性

传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。

更多特点

PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能!

PHP5教程之文件操作

一引论

在任何计算机设备中文件是都是必须的对象而在web编程中文件的操作一直是web程序员的头疼的地方而文件的操作在cms系统中这是必须的非常有用的我们经常遇到生成文件目录文件(夹)编辑等操作现在我把php中的这些函数做一详细总结并实例示范如何使用关于对应的函数详细介绍请查阅php手册此处只总结重点和需要注意的地方(这在php手册是没有的)( lian)

二目录操作

首先介绍的是一个从目录读取的函数 opendir() readdir() closedir()使用的时候是先打开文件句柄而后迭代列出:

<?php$base_dir= filelist/;$fso= opendir($base_dir); echo$base_dir<hr/>; while($flist=readdir($fso)){ echo$flist<br/>;} closedir($fso)?>

这是讲返回文件目录下面的文件已经目录的程序(文件将返回false)

有时候需要知道目录的信息可以使用dirname($path)和basename($path)分别返回路径的目录部分和文件名名称部分可用disk_free_space($path)返回看空间空余空间

创建命令:

mkdir($path)

是权限码在非window下可用umask()函数设置

rmdir($path)

将删除路径在$path的文件

dir directory类也是操作文件目录的重要类有个方法 read rewind close这是一个仿面向对象的类它先使用的是打开文件句柄然后用指针的方式读取的这里看php手册:

<?php$d= dir(/etc/php);echo Handle:$d>handle/n;echo Path:$d>path/n;while(false!==($entry=$d>read())){ echo$entry/n;}$d>close();?>

输出:

Handle: Resource id# Path:/etc/php apachecgicli

文件的属性也非常重要文件属性包括创建时间最后修改时间所有者文件组类型大小等

下面我们重点谈文件操作

三文件操作

A读文件

首先是一个文件看能不能读取(权限问题)或者存在不我们可以用is_readable函数获取信息

<?php$file= dirlist php;if(is_readable($file)== false){ die(文件不存在或者无法读取);} else{ echo存在;}?>

判断文件存在的函数还有file_exists(下面演示)但是这个显然无is_readable全面当一个文件存在的话可以用

<?php$file= filelist php;if(file_exists($file)== false){ die(文件不存在);}$data= file_get_contents($file);echo entities($data);?>

但是file_get_contents函数在较低版本上不支持可以先创建文件的一个句柄然后用指针读取全部:

$fso= fopen($cacheFile r);$data= fread($fso filesize($cacheFile)); fclose($fso);

还有一种方式可以读取二进制的文件:

$data= implode( file($file));

B写文件

和读取文件的方式一样先看看是不是能写:

<?php$file= dirlist php;if(is_writable($file)== false){ die(我是鸡毛我不能);}?>

能写了的话可以使用file_put_contents函数写入:

<?php$file= dirlist php; if(is_writable($file)== false){ die(我是鸡毛我不能);}$data=我是可鄙我想要; file_put_contents($file$data);?>

file_put_contents函数在php中新引进的函数(不知道存在的话用function_exists函数先判断一下)低版本的php无法使用可以使用如下方式:

$f= fopen($file w); fwrite($f$data); fclose($f);

替换之

写文件的时候有时候需要锁定然后写:

function cache_page($pageurl$pagedata){ if(!$fso=fopen($pageurl w)){$this>warns(无法打开缓存文件);//trigger_error return false;} if(!flock($fso LOCK_EX)){//LOCK_NB排它型锁定$this>warns(无法锁定缓存文件);//trigger_error return false;} if(!fwrite($fso$pagedata)){//写入字节流 serialize写入其他格式$this>warns(无法写入缓存文件);//trigger_error return false;} flock($fso LOCK_UN);//释放锁定 fclose($fso); return true;}

C复制删除文件

php删除文件非常easy用unlink函数简单操作:

<?php$file= dirlist php;$result=@unlink($file); if($result== false){ echo蚊子赶走了;} else{ echo无法赶走;}?>

即可

复制文件也很容易:

<?php$file= yang txt;$newfile= ji txt;#这个文件父文件夹必须能写 if(file_exists($file)== false){ die(小样没上线无法复制);}$result= copy($file$newfile); if($result== false){ echo复制记忆ok;}?>

可以使用rename()函数重命名一个文件夹其他操作都是这几个函数组合一下就能实现的

D获取文件属性

我说几个常见的函数:

获取最近修改时间:

<?php$file= test txt; echo date( r filemtime($file));?>

返回的说unix的时间戳这在缓存技术常用

相关的还有获取上次被访问的时间fileatime() filectime()当文件的权限所有者所有组或其它 inode中的元数据被更新时间 fileowner()函数返回文件所有者

$owner= posix_getpwuid(fileowner($file));

(非window系统) ileperms()获取文件的权限

<?php$file= dirlist php;$perms= substr(sprintf(%o fileperms($file)));echo$perms;?>

filesize()返回文件大小的字节数:

<?php

//输出类似 somefile txt: bytes

$filename= somefile txt; echo$filename: filesize($filename) bytes;

?>

获取文件的全部信息有个返回数组的函数stat()函数:

<?php$file= dirlist php;$perms= stat($file); var_dump($perms);?>

那个键对应什么可以查阅详细资料此处不再展开

四结束语

lishixinzhi/Article/program/PHP/201311/21262

好了,关于php教程文档和PHP教程的问题到这里结束啦,希望可以解决您的问题哈!

onclick后面写什么(写的什么)后缀xml文件怎么打开,使用网络浏览器打开xml文件的步骤