下面是一些学习PHP总结的一些资料。很实用。大家可以收藏下。
1.wamp -WampServer2.1e-x32 (本人的版本) a.Apache 2.2.17 //服务器 b.MySQL 5.5.8 //数据库 c.PHP 5.3.5 d.套装适合初学者 -规范格式:<?php?> -echo a.echo TRUE //输出1 b.echo FALSE //没输出 -错误显示 a.php.ini: display_errors = on; b.学习时开启,发布时关闭 补充:@ 是错误控制符,作用为隐藏错误 -注释快捷键(EasyEclipse) a. // :Ctrl+/ (重复视为取消) b. /**/:Ctrl+Shift+/ (使用) Ctrl+Shift+\ (取消) -课外补充 Error_reporting:配置错误信息回报的等级 1 E_ERROR 致命的运行错误 2 E_WARNING 运行时警告(非致命性错误) 4 E_PARSE 编译时解析错误 8 E_NOTICE 运行时提醒(经常是bug,也可以是有意的) 16 E_CORE_ERROR PHP启动时初始化过程中的致命错误 32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错误) 64 E_COMPILE_ERROR 编译时致命性错误 128 E_COMPILE_WARNING 编译时警告(非致命性错误) 256 E_USER_ERROR 用户自定义的致命错误 512 E_USER_WARNING 用户自定义的警告(非致命性错误) 1024 E_USER_NOTICE 用户自定义的提醒(经常是bug,也可能是有意的) 2047 E_ALL 除E_STRICT外的所有错误(PHP6中为8191,即包含所有) 2048 E_STRICT 编码标准化警告(建议如何修改以向前兼容)
错误报告级别是位字段的叠加,推荐使用E_ALL|E_STRICT
2.基础知识 -自定义变量 a.不需明示数据类型 b.加'$' c.以下划线或字母开头 d.以有意义的单词 -全等 a.=== b.判断大小及类型 -数组 创建数组方法 a.array("key"=>"value") b.array[]=value; c.explode(separator,string); 常用函数 a.count //统计数组条数 b.is_array //判断是否为数组 遍历数组 Foreach($arr as $key=>$value) 说明: 指针跳转, 自动循环, 依次赋值 -流程控制符 a. break //结束一层循环 break n //结束n层循环 b. continue //结束本次循环 c. return //返回,结束当前脚本运行 d. exit //结束脚本运行 e. return 与 exit的区别:见图 
3.函数 -date("Y-m-d G:i:s") a.Y 表示4位数字完整表示的年份 b.m 数字表示的月份,有前导零 c.d 月份中的第几天,有前导零的2位数字 d.G 小时,24小时格式,没有前导零 e. i 有前导零的分钟数 f. s 有前导零的秒数 注意:假如你显示的时间跟电脑显示时间不一样,也就是相差8小时,可在php.ini里 面将date.timezone = "PRC" //PRC代表中华人民共和 -time() //返回当前的 Unix 时间戳,也就是一串数字 例: $nextWeek=time()+(7*24*60*60);//7天,24小时,60分钟,60秒 echo $nextWeek."<br>"; echo 'now: '.date("Y-m-d")."\n"; echo 'Next Week: '.date("Y-m-d",$nextWeek);
date(格式字符,时间戳) 1. 将给定的时间戳以给定的格式输出来 2. 如果省略时间戳,例如前面,则视为当前时间 -自定义函数 a.格式:function 函数名(){} b.使用与功能相关的名字 function_exists //判断函数 is_array //判断数组 -命名习惯 a.使用良好命名 (必须地,其余仅供参考) b.函数单词开头大小写 c.常量大写 d. 变量小写 提醒:PHP是区别大小写的
4.mysql -Mysql(小型关系型数据库管理系统) a.体积小 b.速度快 c.成本低 d.开源 MYSQL默认使用的是3306端口 -存储引擎(存储表数据的类型) a.MyISAM:较高的插入、查询速度,但不支持事务;默认。 b.InnoDB:支持事务 -phpMyAdmin(Web方式访问Mysql) -类型小解 精度:指数值数据中所存储的十进制数据的总位数。 长度:指存储数据所使用的字节数 int 1.整数型 2.精度10 3.数值范围(-2147483648~2147483648) 4.长度4 注意: int(n) 1.指定整数值的显示宽度 2.实际的宽度小于指定列宽度时,从左侧填满宽度 3.不改变长度,不改变数值范围 字符型 char/varchar(n) //n表示长度 当列中字符数据值长度一致时,使用char,长度不同时,使用varchar可以节省存储空间 -基本sql语句 a.SELECT 字段 FROM 表 WHERE 条件 b.INSERT INTO 表(字段)VALUES(值) c.UPDATE 表 SET 更新内容 WHERE 条件 d.DELETE FROM 表 WHERE 条件 多练习是关键 查询语句之后: 1.分组:group by 2.排序:order by ASC/DESC 3.限制:limit O,N 对于limit来说,O为偏移量,跟数组一样是从0开始算起,N为数量 如:limit 1,5 相当于从第二条开始往后5条记录 5.php操作mysql -基本步骤: mysql_connect("hostname","username","password") //连接MYSQL mysql_select_db("database_name"); //打开数据库 mysql_query($sql); //执行sql语句 mysql_fetch_array($result) //取值
mysql_query: 1.sql=select 时,执行成功返回一个资源标识符,执行错误返回FALSE 注意:查询成功不代表一定有结果,只说明语句正确 2.sql=insert/update时,执行成功返回TRUE,执行错误返回FALSE
mysql_fetch_array() 1.取得query(sql)的结果集中的一行保存到数组 2.依次调用将返回结果集中的下一行 3.可以通过字段名作索引 -中文编码 避免乱码: 1.建立数据库时,要选择相应的字符集。全国通用:GBK/gb2312;世界通用:UTF-8(建议选用)。 2.连接mysql时,加入连接字符集 "set names GBK"; 注意:如果你set names UTF8,那么就应该设置页面编码为UTF-8 详细可以参考:http://bbs.php100.com/read-htm-tid-416.html ///////////////封装Php连接Mysql函数//////////////// function PHPConnectMysql($hostname,$username,$password,$database,$charaset){ mysql_connect($hostname,$username,$password); mysql_select_db($database); mysql_query("set names $charaset"); } 小结:平时多积累,将特定功能函数化,以便重复利用。
6.留言板 -设计一个程序流程 1.功能需要 2.页面设计 3.数据库设计 4.代码设计 5.调试发布 -表单 1.form></form> 2.method:表单数据传输到服务器的方法 post(表示在Http请求中嵌入表单数据) get (表示将表单数据附加到请求该页的URL) 默认方法 区别: a.Get传输数据量小,这主要是受URL长度限制;而Post可以传输大量数据。 b.Get安全性比较低,但执行效率比Post好。 接收参数: POST方式:$_POST['name'] GET方式:$_GET['name'] 注意:$_POST与$_GET必须为大写; php5.0以上版本不加引号会报notice级别错误,要养成良好书写习惯,规范化。当然关闭display_error就另当别论。 充电 $_POST:它是由HTTP POST方法传递的变量组成的数组 $_GET: 它是由HTTP GET方法传递的变量组成的数组 $_COOKIE:它是由HTTP Cookies传递的变量组成的数组 $_SESSION:它是包含当前脚本中会话变量的数组 建议 1.GET安全性较POST差,包含机密信息的话建议使用POST 2.分页时使用GET 3.常用控件 a.单行文本框 <input type=text> 多行文本框 <textarea></textarea> b.密码框 <input type=password> c.多选框 <input type=checkbox checked> (checked属性表示选中状态) d.单选框 <input type=radio checked> (checked同上) e.下拉菜单 <select> <option selected></option> //selected指定该选项的初始状态为选中 </select> f.提交按钮 <input type=submit> 重置按钮 <input type=reset> 4.日期/时间函数 php:date,time; mysql:now -javascript验证 onsubmit:当提交按钮点击时触动,如果内容为"return function_name();"函数返回FALSE,则不提交表单。 -初识COOKIE setcookie(name,value,time); 注意:php的cookie必须刷新一次才能生效。
7.分页原理 -分页函数 page.rar (2 K) 下载次数:10 第13课老师提供的分页函数,我进行了适当的修改,去掉了一些我不太好理解的地方。 只要你好好研究老师的函数,想必很容易就可以判断出我修改的地方。 如果你觉得我修改有什么不当的地方欢迎指证,交流可以促使你我进步! -变量 1.局部变量 2.全局变量(global,$GLOBALS)
a.在函数外定义的局部变量,只可以在主程序使用,不可在函数内或其他文件使用 b.在函数内定义的局部变量,只可在本函数内使用 c.在函数外定义的局部变量,想要在函数内使用,必须在函数内将变量声明为global  d.在函数内定义的局部变量,想要在函数外使用,必须在函数内将变量声明为global  注意: 1.必须先将变量声明为global,然后才赋值 错误: global $color="red"; 正确: global $color;$color="red"; 2.必须先声明,再使用 错误:echo $color;global $color; 正确:global $color;echo $color; f.函数的参数为局部变量,如果想要在外部使用,不能使用global这种方式(因为不符合先声明,再使用的原则) 则使用超全局变量 $GLOBALS(大写,小写有不确定性)  建议:请亲自上机实践
8.Smarty -基础配置,变量操作符,内置函数,缓存(重要) 视频里讲得相当详细,不重复! -实例练习 1.找一个简单的模板 http://bbs.php100.com/read-htm-tid-65369.html 2.基本结构  3.主要是index.php的填写及index.html的修改 4.用到的知识点: a.smarty(section,if else,基本应用) b.分页 c.js的表单检验函数CheckPost(自定义) d.php操作mysql 5.提供主要文件,包括index.php/html,common,数据库(导入即可),以供参考主要文件 smarty.rar (10 K) 下载次数:1 6.部分截图 注意:共有两表,一为留言内容,二为解答('为你服务') 二表的f_id字段为一表的id字段 
9.Ajax -ajax a.全称:Asynchronous Javascript and Xml(异步javascript 和 xml) b.含义:一种创建交互式网页应用的网页开发技术 c.功能:实现局部刷新,减少服务器压力 d.工作原理:  传统Web应用允许用户填写表单,当提交表单时向Web服务器发送一个HTTP请求。服务器接收并处理传来的表单, 然后返回一个新的网页到用户浏览器。如图所示就是传统Web应用的工作原理。使用传统Web应用时若要改变页面的 一小部分数据,需要重新加载整个页面,这是一种不友好的用户体验。而且由于每次应用的交互都需要向服务器发送 请求,应用的响应时间依赖于服务器的响应时间,这可能导致用户花费较长的等待时间。  与传统Web应用不同的是,AJAX采用异步交互过程。AJAX可以仅向服务器发送并取回必须的数据,它使用SOAP (简单对象访问协议)或其他一些基于XML的Web Service 接口,并在客户端采用JavaScript处理来自服务器的响应。 用户在页面上获得的数据是通过AJAX引擎提供的,由于页面不需要与服务器直接交互,所以客户端浏览器不需要刷 新页面就能获得服务器的信息,提高了页面的友好度。
主要: function CallServer(value){ CreateXMLHttpObject(); //创建一个xmlhttp对象 xmlhttp.open("GET","for.php?id="+value,true); //创建一个http请求 xmlhttp.onreadystatechange=UpdatePage; //定义响应的函数 xmlhttp.send(null); //发送请求 }
注意: 1.取得文本框的内容 a.document.myform.user.value(js文件里) b.this.value(html文件里) 2.注意字符集 如果你输出结果包括中文,要注意字符集的问题。即js文件的字符集跟php文件的字符集应可转换 例:本人使用的是easyeclipse,新建的ajax.js文件的字符集默认为ISO-8859-1,这样的话php文件 就应该为utf而不能为gbk,可能是gkb跟ISO不能转换的缘故。而utf比较'通吃'.当然,你可以把 js文件转换为utf8,这样就避免许多问题了。
(责任编辑:admin) |