笔记以 http://www.w3school.com.cn/php/index.asp 为蓝本,记录一些知识。
表单验证
应该在任何可能的时候对用户输入进行验证。客户端的验证速度更快,并且可以减轻服务器的负载。
不过,任何流量很高以至于不得不担心服务器资源的站点,也有必要担心站点的安全性。如果表单访问的是数据库,就非常有必要采用服务器端的验证。
在服务器验证表单的一种好的方式是,把表单传给它自己,而不是跳转到不同的页面。这样用户就可以在同一张表单页面得到错误信息。用户也就更容易发现错误了。
date()函数
date(format,timestamp
format: d - day, m - month, Y - year, H - hour, i - minutes, s - seconds.
timestamp: 自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数.
mktime() 函数可为指定的日期返回 Unix 时间戳。
mktime(hour,minute,second,month,day,year,is_dst)
include 和 require 很相似,除了在错误处理方面的差异:
- require 会产生致命错误 (E_COMPILE_ERROR),并停止脚本
- include 只会产生警告 (E_WARNING),脚本将继续
- 在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。
fopen(filename, method) 函数用于在 PHP 中打开文件。
fclose(file).
fgets(file) 逐行读文件
fgetc(file) 逐字符读文件
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
setcookie() 函数必须位于 <html> 标签之前。
setcookie(name, value, expire, path, domain);
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
注释:session_start() 函数必须位于 <html> 标签之前.
unset() 函数用于释放指定的 session 变量.
session_destroy() 函数彻底终结 session.
PHP mail() 函数用于从脚本中发送电子邮件。
mail(to,subject,message,headers,parameters)
$field=filter_var($field,FILTER_SANITIZE_EMAIL
); if(filter_var($field,FILTER_VALIDATE_EMAIL
);
PHP 过滤器来对输入进行验证:
- FILTER_SANITIZE_EMAIL 从字符串中删除电子邮件的非法字符
- FILTER_VALIDATE_EMAIL 验证电子邮件地址
PHP 错误处理
- 简单的 "die()" 语句
- 自定义错误和错误触发器
- 错误报告
1.基本的错误处理:使用 die() 函数
die("xxx");
2.创建自定义错误处理器
function customError($errno, $errstr) { echo "<b>Error:</b> [$errno] $errstr"; } //set error handler set_error_handler("customError");
基本的错误处理器:
error_function(error_level,error_message, error_file,error_line,error_context)
error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值
3.触发错误
在脚本中用户输入数据的位置,当用户的输入无效时触发错误的很有用的。在 PHP 中,这个任务由 trigger_error() 完成。
错误记录
默认地,根据在 php.ini 中的 error_log 配置,PHP 向服务器的错误记录系统或文件发送错误记录。通过使用 error_log() 函数,您可以向指定的文件或远程目的地发送错误记录。
异常的基本使用
如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 "Uncaught Exception" (未捕获异常)的错误消息。
设置顶层异常处理器 (Top Level Exception Handler)
set_exception_handler() 函数可设置处理所有未捕获异常的用户定义函数。
<?php function myException($exception) { echo "<b>Exception:</b> " , $exception->getMessage(); } set_exception_handler('myException'); throw new Exception('Uncaught Exception occurred'); ?>
连接到一个 MySQL 数据库
mysql_connect(servername,username,password);
create database:
mysql_query("CREATE DATABASE my_db",$con)
select Database:
mysql_select_db("my_db", $con);
|
支持日期或时间 |
SHOW CREATE TABLE tablenam; 显示表结构
mysql中文
http://database.51cto.com/art/201010/229167.htm
mysql> SHOW VARIABLES LIKE 'character%';查看
SET character_set_xxxxx = utf8 ;
connection连接层上。解决方法是在发送查询前执行一下下面这句:
SET NAMES 'utf8';
网页<head>
<
meta
http-equiv
=
"
content-type
"
content
=
"
text/html; charset=UTF-8
"
/>
有两种基本的 XML 解析器类型:
- 基于树的解析器:这种解析器把 XML 文档转换为树型结构。它分析整篇文档,并提供了 API 来访问树种的元素,例如文档对象模型 (DOM)。
- 基于事件的解析器:将 XML 文档视为一系列的事件。当某个具体的事件发生时,解析器会调用函数来处理。(Expat is this)
Expat parser:
$parser=xml_parser_create(); function start($parser,$element_name,$element_attrs){} function stop($parser,$element_name){} function char($parser,$data){} xml_set_element_handler($parser,"start","stop"); xml_set_character_data_handler($parser,"char"); $fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser);
DOM xml Parser:
$xmlDoc = new DOMDocument(); $xmlDoc->load("note.xml"); $x = $xmlDoc->documentElement; foreach ($x->childNodes AS $item) { print $item->nodeName . " = " . $item->nodeValue . "<br />"; } print $xmlDoc->saveXML();
saveXML() 函数把内部 XML 文档放入一个字符串,这样我们就可以输出它。
当 XML 生成时,它通常会在节点之间包含空白。XML DOM 解析器把它们当作普通的元素,如果您不注意它们,有时会产生问题。
simple dom
$xml = simplexml_load_file("test.xml"); echo $xml->getName() . "<br />"; foreach($xml->children() as $child) { echo $child->getName() . ": " . $child . "<br />"; }
相关推荐
W3School全套教程
w3school全套教程(含jquery)chm w3school全套教程(含jquery)chm w3school全套教程(含jquery)chm w3school全套教程(含jquery)chm w3school全套教程(含jquery)chm w3school全套教程(含jquery)chm w3school...
W3School Ajax教程 Ajax 教程 整理的W3School Ajax教程
在w3school,你可以找到你所需要的所有的网站建设教程。 从基础的HTML到XHTML,乃至进阶的XML、SQL、数据库、多媒体和WAP。 http://www.w3school.com.cn/这个网站就不介绍了自己看吧囊括了可以说web开发的所有知识...
W3school在线教程
w3school PHP教程 飞龙整理 20141026
W3School的教学资料,下载以后离线查询非常方便,能正常使用。
W3School全套教程.rar
W3School全套教程 不错的文档 自己用的 还可以
w3school ruby教程 飞龙整理 20141001
w3school在线教程离线版20120928
w3school上导下来的教程,可以入门用,也可以当手册
W3SCHOOL PHP离线教程,可以快速的对PHP的语法有个简单的认识,也可作为参考工具开发时使用
w3school导下来的教程,适合入门,也可以当手册
w3school c语言教程 20141228
w3school Python教程 飞龙整理 20141026
w3school eclipse教程
由于打包文件有60MB的限制,就拿了一半打包,另一半在打包下载全部w3school教程(2)中。 (1)中包括18个PDF,正则表达式教程,设计模式教程,网站建设教程, AngularJS教程,bootstrap教程,c#&asp.net教程,c语言...