Archive for the ‘ PHP ’ Category


PHP学习记录(5)–xampp篇

对于我这个不太懂PHP的人来说,以及习惯了使用VS或者是ECLIPSE这种简单IDE的人,对于PHP的环境搭配还是觉得头都是大的。一早上就为了安装xampp,和解决它的问题忙乎过去了。这个软件的确相对而言还是比较方便的,但是其中也不可否认的存在一些问题,谈不上是BUG,但在使用的过程中会给人小小地造成一些麻烦。

首先介绍一下xampp,这是一个大的软件集合体,根据官方的说法,包括:
Apache
MySQL
PHP
phpMyAdmin
FileZilla FTP Server
Mercury Mail Transport System
OpenSSL
看一下,就发现,如果你只是想开发简单的PHP网站的话,那么基本上所有需要的工具都包含在里面了,虽然后面几个目前来说我不太了解其用途。

然后再看一下,因为在PHP界,和xampp这几个字差不多的软件有几个。比较有名的一个是lamp,一个是wamp。其实会发现,本质都是一样的,amp代表着apache, mysql和php。而前一个l是指Linux环境下,而w指代的是windows环境。这样一解释就比较容易了。xampp是后期出现的一个产品,除了传统的amp支持外,多的一个p指代的是perl,而x就大概是兼容并包的意思吧,既可以支持Linux,又可以跑在windows上。
网上有很多介绍几者之间关系的文章,推荐这篇可以看看,搜索一下即可:解读wamp和lamp:从对立到融合

从xampp的官方网站上下载下安装程序,大概37M左右,双击安装。过程之中有两点需要注意,这也就是xampp的不人性之处:
1. 安装目录不要选择programe files,直接安装在根目录下,不然在后面的启动服务过程中会出现麻烦
2. 有三个选项要你选择是否将apache, mysql和fileZilla设置为服务,这个无关紧要,因为完成后也很容易修改。具体的办法是,对apache,\xampp\apache 目录下apache_installservice.bat文件就是安装服务,apache_uninstallservice.bat就是取消服务。对于其余两个同样在相关目录下。

安装成功后,可以启动Control Panel,在其中可以选择启动apache和mysql。如果你在安装过程中选择了安装服务,那么他们两个将会自动启动。但是这个启动过程中会出现不少的问题,比较常见的问题就是出现一段话:apache service not started或者是mysql service not started,原因一般也有以下几种:
1. 端口被占用:apache的默认端口是80,如果你在用VS开发使用IIS的话,冲突是不可避免的。同时,大部分的中国程序员都被迅雷所吸引,但是这玩意端口也是80。于是还是改一下apache的端口吧,地址\xampp\apache\conf下的httpd.conf,把80改成你喜欢的,当然你也不能太随便了。
2. mysql的端口是常见的3306,但是如果你曾经是一个JSP开发人员,可能自己就已经安装过mysql,而往往不会选择手动启动服务。于是你的电脑每次开机,都会自动加载mysql的服务,直接导致3306被占用。有个很简单的办法,进入服务,把原来的那个mysql的服务改为手动,就解决了。不过下次调试jsp的时候,一定记得在开tomcat的同时,打开mysql。
3. 按照的过程中,安装到了program files目录下,没有阅读前文,自行卸载解决。
4. 如果你点击了mysql的管理工具,但是却输错了密码,导致的直接结果就是不停地弹出一个包错的玩意,除非你把mysqlAdmin关掉。这件事提醒我们,一定要输入正确的密码,不然就会像我一样,卸载。初始密码统一是应户名root,密码空。

安装好了以后,启动apache,做一个简单的测试。直接浏览器,http://localhost。如果一切顺利,出现的应该是语言选择菜单,自己爱啥选啥,如果你还能懂波兰语或者是挪威语的话。进入以后,左边的菜单有一项状态Status,点击看就是当前的状态,表明你的安装状况。

xampp Status

PHP学习记录(4)

PHP的调试

要打开PHP的调试功能,需要在代码中加入下面一段:

ini_set(‘display_errors’, 1);

对于PHP的出错显示,大致上有三种级别:

1)通知级别,不停止代码的执行,并不会一定带来出错

2)警告,提示有问题出现,但是不停止代码执行

3)错误,停止代码执行

error_reporting(0)将会停止显示任何出错

使用@在函数上或者数学操作上,可以将错误掩盖,而继续执行下面的代码

一般情况下,如果打开了错误显示,并且错误被捕捉到,PHP将会打印出这些错误在一个简单的HTML表单中。可以使用set_error_handler(‘report_errors’)来覆盖处理出错的方式,其中的参数是一个自定义的函数。在使用自定义的错误处理时,ini_set()error_reporting()都将失去作用。

可以使用error_log(message, type, destination, extra headers)来记录错误日志,其中type0是系统默认日志,为1是邮件日志,2是远程调试日志,3是文件日志。

PHP学习记录(3)

上面都是语法的最基础部分,接下来是还有一点点的语法,其实也属于常见范畴。结束这部分后,就可以开始准备实战了。

使用外部文件有四种方法:include(), include_once(), require(), require_once()。在PHP中,所有的引用的外部文件都将视作为html而不是php。在正常情况下,include和require的效果是一样的,但是在出错的状况下,include会将错误警告显示在浏览器上,而require则是直接抛出错误停止运行。

可以用$_POST['submitted']来判断表单是否已经提交。如果需要在错误的时候在表单上自动填入原先的值,可以使用echo语句打出。

PHP学习记录(2)

首先看看关于FORM的部分,和HTML一样,同样是指明action和method。action代表需要转到的页面,method是POST或者GET。在action页面,用$_REQUEST['']来获取前面的参数传递,大小写必须完全一致。

在PHP6以前的版本之中,有一个所谓的Magic Quotes,它的出现是为了防止人们利用输入的FORM而添加一些恶意代码,讲所有的单双引号都转换为了转义字符。这个功能在PHP6已经取消了。如果想要在以前版本中不使用这个功能,使用stripslashes()函数。

在if语句中,elseif是连续在一起没有空格的。此外,所有的不为0,空字符串,FALSE或NULL的变量都是true。isset($var)函数除了在var为null的时候返回FALSE外,其余所有的情况都返回TRUE,包括0,FALSE或者空字符串。empty()函数判断变量是否是一个空值,包括空指针,0,NULL和FALSE。可以用来使用表单验证。判断是否是数字,用is_numeric()函数。

数组部分:
两种形式的数组,分别以数字或者字符串作为KEY,其实也就是分别我们常见的数组和MAP。PHP还可以讲数字和字符串混合起来作为KEY使用,不过要求必须唯一。当用String作为KEY并且需要单独调用的时候,用大括号将其包起来如:echo “****** ****** {$***['***']}”。PHP提供了几个全局数组变量用来记录一些基本信息,包括$_GET, $_POST, $_REQUEST, $_SERVER, $_ENV, $_SESSION, $_COOKIE
ARRAY可以如下创建:直接$array[]=”a”, $array[]=”b”, $array['a']=a;还可以使用array()函数来创建,$array=array(”a”=>’a').要轮询数组则使用foreach函数。range()方法可以创建一定范围内的数组,数字和字母均可。
sort()方法可以为数组中的值排序,但是会导致KEY的变化。asort()能够保持key, ksort()可以按照key排序。反向排序分别为rsort(),arsort(),krsort()
数组和字符串可以相互转换,分别为explode(separator, $String) 和 implode(glue, $array)方法。其中separator和glue都是分别符。

PHP学习记录(1)

PHP可以说是很古老的技术了,不过从我开始编程到现在,从来都没有太放心思在上面,导致于现在的结果就是仍然基本是PHP文盲。而如今PHP虽然没有JSP,APS.NET那般狂妄,却仍然占据着WEB开发的半壁江山。特别是现在我使用的WP,迫使我必须自己看一点PHP内容。同时,通过我在JOB ITSEEK上以及UNIJOB上的观察,发现PHP仍然是相当吃香的(可能这也与澳大利亚的相对落后有关)。不过不管如何,作为一个程序员,不懂PHP实在说不过去。这个星期到圣诞之前,就争取把这基础搞定,做个小东西出来瞧瞧。下载了《PHP 6 AND MYSQL 5 FOR DYNAMIC WEB SITE》,也不知道这本书到底如何,但是看到网上推崇的人不少,就跟着步骤来吧。

首先还是从基本语法开始:

1)PHP的引用办法有三种,书中建议使用第一种
<?php        ?>
<?              ?>
<script language=”php”></script>

2)输出的两种办法:echo()和print()
如echo “hello world”; print “hello world”;
单引号双引号在纯文本下无区别,echo和print也几乎无区别。即使有区别,忽略掉,推荐使用echo。

3)三种注释方式://, /*…*/和#

4)变量名,前面加$,如果要在字符串中打印出变量,需要使用双引号
字符串的联结,使用.,如$address=$city.$state;

5)使用数字的时候,round()表示取整,number_format()表示按照三位一组逗号分开,第二个参数表示小数点后位数

6)常量的使用:define(’NAME’,'value’);
在引用常量的时候,不能将其放在括号内,必须用字符串联结起来

7)单双引号的区别:Double quotation marks will replace a variable’s name with its value and a special character’s code with its represented value. Single quotation will always display exactly what you type, except for the escaped single quote and the escaped backslash, which are printed as a single quotation mark and a single backslash, respectively.

  • English Version

    • Cannot read Chinese? Please take a look at my English site, hope you can find more you need there!
  • 感谢支持

  • twitter

    facebook

    linkedin

    • You are currently browsing the archives for the PHP category.

  • Categories