php高级教程
php高级教程
导语:php是it行业语言,也是一门较热的网络技术,下面就由我为大家介绍一下php高级教程,欢迎大家阅读!
一、PHP- 多维数组:
$cars = array(
array("huawei","12","11"),
array("meizu","23","12"),
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个!
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 类,并返回不同的错误消息:
惠普笔记本bios设置步骤教程
惠普笔记本无论工作还是游戏,都是一个不错的选择,那么惠普笔记本bios设置怎么操作呢?这个问题你知道吗?现在很多人也都在使用惠普电脑,现在就由我我来告诉你们怎么操作吧!惠普笔记本bios设置 笔记本开机或者重启的之后,刚开机界面,不停,间断按F10键即可进入BIOS 针对部分不同型号的HP笔记本来说,间断按...
hp电脑进入安全模式按F几
安全模式"即可。需要注意的是,如果想要退出安全模式并回到正常系统,只需在进入安全模式的步骤中取消"安全引导"的勾选,然后选择"确定"即可。总的来说,惠普电脑进入安全模式的快捷键取决于操作系统的版本,无论是通过系统配置还是高级菜单,都能帮助用户解决电脑故障问题。希望这个教程对您有所帮助。
惠普打印机怎么校准?惠普HP Designjet Z2100做颜色校准的教程
惠普HP Designjet Z2100 如何做颜色校准 1、请勿使用透明或半透明纸张校准颜色.建议使用相纸或涂料纸以获得最佳质量. 确保关上透明护盖,因为如果在重新对齐打印头的过程中打印机附近有强光源,则会影响对齐. 2、通过颜色校准,您的打印机可根据您使用的特定打印头、墨水和纸张在特定环境条件下...
hp laserjet m1005 mfp驱动安装教程(附:10个详细的安装步骤和图片...
具有有线网络功能的打印机可以通过惠普EasyStart安装,也可以从惠普官网下载。使用HP EasyStart进行驱动程序安装时,需要先连接打印机电源和网络,将打印机和电脑连接到同一个局域网。备注:本文以惠普激光MFP1005N智能闪充加粉多功能一体机为例。使用HP EasyStart安装驱动程序。一个将打印机电源线插入电源...
惠普打印机连接教程
一、惠普家用打印机使用方法 1、给打印机连接网线,然后我们在HP的显示面板上就能看到打印机的IP地址。2、然后在浏览器中输入看到的IP地址。3、切换到HP WEB服务选项卡中,点击启用。4、在启用之后,打印机就会自动打印出一份文档,文档里是如何使用HP云打印的说明(注:有云打印服务的注册网站和打印机...
HP M203DN打印机安装详细图文教程
从磁盘安装’,然后下一步 9.选择‘浏览’10.从下拉菜单进入打印机驱动所在的文件夹,选择‘打开’11.选择‘确定’12.选择打印机对应型号,然后下一步 13.继续下一步 14.根据打印机使用情况确定是否‘设置为默认打印机’,最后完成 以上就是我做的HP M203DN打印机安装的详细图文教程 ...
请问我的惠普笔记本电脑要如何重装系统
选择usb hard drive,然后回车,系统直接从u盘启动。进入界面如图:惠普笔记本重装系统:随后进入条款接受界面如图:选择windows安装方式。如果需要格式化c盘,选择自定义安装,这里介绍下自定义安 装。进入驱动器选择界面,单击“驱动器选择(高级)”如图。格式化系统盘如图:格式化,然后下一步。进入系统自动安装...
hp笔记本重装系统教程|hp笔记本电脑怎么重装系统
重装须知:1、如果你的hp笔记本是非uefi机型,直接legacy模式重装,如果是uefi机型,要通过uefiU盘重装2、本文介绍uefi模式重装ghostwin1064位方法,其他方法参考相关教程相关教程:legacyMBR装win10怎么装wepe安装原版win101803教程惠普笔记本预装win10改win7系统教程一、准备工作1、8G或更大容量空U盘2、制作...
惠普笔记本重装系统教程hp笔记本重装系统
惠普笔记本重装系统教程,hp笔记本重装系统很多人还不知道,现在让我们一起来看看吧!惠普笔记本电脑重新安装系统课程 相信使用惠普笔记本的朋友,都不会知道如何为惠普笔记本重装系统。以下是惠普笔记本重装系统的方法。让我们来看看。将启动USB闪存驱动器设置为启动:1.惠普电脑有一个特殊的功能,就是按Esc键...
惠普打印机怎么连接wifi(hp打印机wifi连接教程)
其实就是局域网打印机共享,方法如下:1、给打印机设置IP,先把路由器或者是交换机引出来的网上插到打印机上面。2、然后点击打印机设置——网络配置——无线菜单,最好是在里面给打印机设置一个固定的IP。3、然后就是在电脑上面下载安装打印机的驱动程序,安装驱动的时候选择网络安装,这样就会自动搜索...
无梵川贝: 课程:MySQL数据库的创建、修改及删除;数据表的创建、修改及删除;无限分类的数据表设计;记录的插入、更新、删除及查找;外键与连接;索引;存储过程,触发器,游标;事务处理;数据库引擎详解;数据库集群,数据库读写分离、类与对象,类的定义;属性与方法;$this关键字、 self关键字;继承,多态;魔术方法;抽象类与接口;设计模式;PDO类;JpGraph图表,FusionCharts图表;PHP高级应用(Smarty模板、PHP框架技术)等.
吐鲁番市18471342350: php去除字符串中的数字的方法 ?
无梵川贝: php去除字符串中数字的方法:首先创建一个PHP示例文件;然后使用正则表达式“$class=preg_replace("/\\d+/"'' $res);”实现去除字符串中的数字即可.推荐:《PHP...
吐鲁番市18471342350: 有没有好的PHP教程 提供一下?
无梵川贝: 十天学会php 还有这个教程: http://www.w3school.com.cn/php/index.asp 这两个主要是掌握下基础语法 做一些小程序 等你觉得看的差不多了 自己做一个用户注册登陆的小系统 如果能自己坐下来 你应该算会php了 关键要能做一些实际项目 进步会很快
吐鲁番市18471342350: php要学哪些?学习php需要掌握哪些东西 - ?
无梵川贝: PHP需要掌握的知识还是比较多的,最基本的比如:PHP基本的语法、php框架以及CMS、mysql数据库设计表、mysql数据库的基本SQL语句.现在一般PHP的都得会前端,那就包括:js/ajax、html、css.如果更高点层次的就是linux服务器. ...
吐鲁番市18471342350: php有什么好的教程 - ?
无梵川贝: PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写.PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似...
吐鲁番市18471342350: 有没有好一点的PHP教程!讲的详细点的!我想自己在家里学!希望网友能提供好一点的教程! - ?
无梵川贝: 以下为推荐的视频教程1. php100的视频教程2.lamp兄弟连的视频教程3.李炎恢的视频教程 这几个都是很不错的php视频教程 希望对你有帮助 如果你想看书的话,可以看看lamp兄弟连高洛峰老师出的《细说php》
吐鲁番市18471342350: PHP的 高级运用 都有哪一些 - ?
无梵川贝: 举几个例子吧:MVC 缓存 静态页面生成 面向对象 学习其它扩展 等等.
吐鲁番市18471342350: 菜鸟自学PHP应该看哪些书籍和教程 - ?
无梵川贝: 首先呢必须会一部分前端.------ 所以呢,这时候你得需要知道 :html css javascript 这一部分,可以选择网上热门视频,各大公开课入门.刚开始不需要了解多深. 能撸出一个个人站点/ 企业小站 就可以进入下一步了 推荐的书籍并没有,毕竟 只...
吐鲁番市18471342350: php高级部份应该怎么学 - ?
无梵川贝: 对 实践才是最重要的 呵呵 自己尝试着做一个网站 可以简单点的 小企业网站模仿一个 在简单中寻求不简单 通常一个小企业网站 可以包含很多东西 试着去百度找一个 模仿着做起来 但是别想用这套程序来运行网站 那会让你精疲力尽 头痛脑热的 ...
吐鲁番市18471342350: 教你如何成为PHP高手? - ?
无梵川贝: 那么怎样才能成为一个优秀的PHP开发者呢? 要成为一名PHP编程高手并不容易,并不像很多人想象的那样,只要能够飞快地编写几条简单的代码去解决一个复杂的问题就是PHP编程高手了,真正的PHP高手还需要考虑更多的其它问题.以下...