php实例教程(php代码)
各位老铁们,大家好,今天由我来为大家分享php实例教程,以及php代码的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
PHP+MySQL开发实例教程的内容简介
本书共分10章,循序渐进地介绍了初始化PHP、PHP的服务器环境搭建、PHP5基本语法、PHP 5面向对象编程、PHP5内置数组、PHP 5内置函数、MySQL数据库与结构化查询语言(SQL)、PHP+MySQL数据库编程等内容。本书最后两章设计了多模块新闻发布系统和多用户博客系统两个案例,详细介绍了其开发步骤,并给出了全部源代码。
本书总结了编者近几年来学习和使用PHP的经验心得。内容选取上以实用性为原则,不求面广,但求实用。本书突出案例教学,避免空洞的描述,每章都根据章节内容设计一个边学边做的案例,通过对案例的深入分析和上机操作使读者加深对所学知识的理解,提高学习效果和动手能力。在书的最后设计了两个中大型的实用案例,将全书内容与典型的实际应用联系起来,也将全书的案例体系串联起来,力求使读者能够学到最贴近应用前沿的知识和技能。
本书为高等职业院校计算机类学生的专业课教材,也可以作为各类希望学习Web开发技术人员的入门自学教材,同时还可以作为初、中级PHP开发者的参考书。
学习php需要的知识
PHP需要掌握的知识还是比较多的,最基本的比如:PHP基本的语法、php框架以及CMS、mysql数据库设计表、mysql数据库的基本SQL语句。现在一般PHP的都得会前端,那就包括:js/ajax、html、css。如果更高点层次的就是linux服务器。
PHP攻城狮践行学习路线图:
1、用集成环境安装PHP环境,一定要记住这一点,不要自己分开去装,尤其是自学的朋友。不然你会觉得很复杂,会没有信心学下去的。也要注意任何高手都不是一蹴而就的,是一步一步,不同的阶段历练才有最后的沉淀。
2、先了解一些基本的变量类型,语法,函数,基本逻辑,写简单的代码。前期以尝试,培养兴趣为主。这段时间是打基础很好的时候,这个会影响你后面的发展,不过也可以在后期去完善。
3、这时候你可能觉得PHP就这样,没什么难度,或者有的觉得太难了,简直一脸疑惑。这个到底有什么用。在这时候一定要坚持下来,可以试试先放一下,别太较真。慢慢的困惑你的会被你领悟的。这时,建议学习html+css+js,缓解自己的压力,这个相对简单,简历信心。尤其是js,总结其实有相同的思路,可以结合着一起体会。
4、这些都感觉有80%了解就可以先放放了,现在在学习MySQL,也是先了解基础的。这个是干什么的,我可以用它做什么。因为之前装的集成环境。为什么感觉是凌乱的,我想告诉你的是,一是不要在自己没能力解决问题的时候死磕,浪费时间,丧失信心。这时候我们要做的是学习壮大自己,不要灰心。二是我本来觉得这一切都了解才是完整的。我们的目标也是要把这些都做好,这才是一个合格的PHP程序员。
5、这一切都顺利的话,你基本离预设的目标不远了,完成了整个学习的70%了。后面的是在之前的基础上升华。把HTML和css、js结合、静态文件和PHP结合、PHP和MySQL结合。这个阶段可能越到的问题会异常的多,一定要学会解决问题。网上很多都是答案,同样你要学会问问题。
6、这些之后你基本已经快到学习的尾声了,但还缺少经验。这时,你可以看一些网上开源的cms,例如织梦,国内用的多,越到问题好解决。看看一些视频(网上免费的很多),查漏补缺,总结归纳形成自己的知识体系。是时候该准备庆祝下自己这段的时间没有白费(一般2到3各月,看平时每天花的时间),基本成为一个合格的PHP程序员了。也该恭喜你了,其实并不那么难。坚持,坚持;努力,努力;学习,学习
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类,并返回不同的错误消息:
OK,本文到此结束,希望对大家有所帮助。