【原创】PHP入门

PHP到底是什么,主要的用途是什么?我想这个是首先需要弄清楚的。简单来讲(之所以说简单来讲,是因为PHP除了开发网站程序,有人甚至用它来做桌面软件,但这个毕竟属于旁门左道,不说也罢),PHP是用于编写网站程序的一种语言,编写好的PHP程序将放在网站服务器上,这些程序被调用时,他们将在服务器的作用域里运行一些计算或者处理。

PHP之所以和网站建设总是放在一起,那时因为它有一套有趣的用法来和浏览器/网页/数据库交互。本文将通过一些小练习,来告诉初学者PHP到底能干啥。。

第一个PHP程序

PHP的安装这里就不多说了,我假定您已经安装好了自己的web服务器(比如Apache),并且已经装好了PHP。(很显然,本站htmlandcss.com的主机已经装好apache和PHP,这是另外一个单独的话题,可以在这个关于AWS空间搭建的文章里了解更多)请记住,PHP安装于Apache之上,可以说是apache的一个第三方的服务组件。普通的web服务器主要处理HTML请求,将浏览器请求的HTML文件发给浏览器,但是装上PHP之后,web服务器会浏览器发来的PHP请求(.php文件)交由PHP引擎处理,处理完了后,web服务器再将结果返回给浏览器。

下面,我们就开始编辑我们的第一个php程序001.php,请使用任何文本编辑器(小编使用的是editplus)新建一个文本文件,把下面的代码敲(拷贝)进去:

<!--001.php-->
<?php //这个是php代码块开始时的定位符两个斜杠//后面一直到行末都是注释
echo "Hello,World"; //这是一个php语句,用分号;结尾。
//这个是php代码块结束时的定位符 在代码块的最后?>

将这个文本文件存为编码为UTF-8的文件,文件名为001.php,存放在你apache网站文件夹里面,我这里也建立了这个文件,在htmlandcss.com的lab文件夹中。

现在在浏览器里通过http://htmlandcss.com/lab/001.php访问这个文件,你会发现你的浏览器里有“hello world”这句话,查看浏览器页面的源代码,你会发现里面就写了"hello word"这句。。这就是PHP的核心秘密(任何语言都类似,各种函数,各种计算,各种if else判断处理,但PHP的核心在于它能和浏览器与Apach这样的web服务器交互,您必须理解这一点才能知道PHP到底是个啥东西。),通过浏览器我们发送了一个.php文件的请求给web服务器,web服务器发现这是一个PHP请求,于是把这个交给PHP服务组件(或者说PHP引擎),PHP引擎处理了这个PHP文件中的php代码部分(就是被php代码界定符包含的部分),将处理结果(这里的处理结果就是输出hello world,这是echo语句的功能,您可以查php手册了解echo语句的用法)发给web服务器,web服务器最后把hello world这句话传回给浏览器并显示出来。

PHP的第二个秘密

PHP的第二个秘密是它可以和HTML混在一起,你中有我,我中有你。直接上代码:

<!--002.php-->
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>HTML and CSS</title>
<style type="text/css">
body {font:2em 微软雅黑;color:#666;background:#666;line-height:2em}
#main {text-align:center;width:50%; margin:8% auto;background:white}
</style>
</head>
<body>
<div id="main">
<p>Hello World</p>
<p>HTML & CSS欢迎您</p>
<p>今天是<?php echo date("Y-m-d")."距离".date('Y',strtotime('+1 year'))."新年还有".ceil((strtotime(date('Y',strtotime('+1 year')).'-01-01') - time())/60/60/24) ?>天 </p>
</div>
</body>
</html>

将这个文本文件存为编码为UTF-8的文件,文件名为002.php,我这里也建立了这个文件,在htmlandcss.com的lab文件夹中。请自行运行http://htmlandcss.com/lab/002.php后查看页面源代码

可以看出,页面源代码就是一个非常普通而标准的HTML代码,PHP引擎做了3种不同的数学计算或者日期函数的运算后将结果放回给了浏览器。请注意,无论如何,我们是002.php,只有这样才能触发PHP引擎的工作。否则,您可以将002.php另存为002.html来看看,访问http://htmlandcss.com/lab/002.html,您可以发现,那些php函数并没有其作用,原因很简单,因为针对.html文件,PHP引擎完全不会触发(有人将apache配置成遇到HTML文件也丢给PHP引擎,个人觉得也属于旁门左道的功夫,不要深究了。),自然也不会运行了。而HTML解析器则自动无视php标签。呵呵

PHP代码和HTML代码浑然天成,非常灵活,以上还有各种写法,比如你把整个HTML的内容都放进php的代码块里面,一样可以出结果。当然这样的编码风格是不好的,学过MVC的同学应该大概知道,为了更有效的编码和维护,HTML最好单独作为表现层和CSS待在一起,而php则最好单独放在后台,专注于后台的工作。没有规划地胡乱混合在一起时不妥的,这点还请您注意

PHP能做什么

很显然,如果PHP只能做的四则运算或日期计算的话,那么它不会那么牛逼,实际上PHP能处理各种服务器上的资源(文件、数据库等等),加以整合计算处理,最后呈现到网页上,也能接受网页数据,加以整合处理,最后存放到服务器上。

php官方手册上有一篇专门描述 PHP 能做什么?的文章,建议大概看一看。总之PHP能开发各种网站应用,现在PHP也是微信公众号开发的主要工具。大家可以多点了解

结束语

师傅领进门,修行靠个人,希望这篇简单的入门文章能帮到那些刚入门却还茫茫然的小白程序员。