笔记以 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);
日期数据类型
描述
date(yyyy-mm-dd)
datetime(yyyy-mm-dd hh:mm:ss)
timestamp(yyyymmddhhmmss)
time(hh:mm:ss)
支持日期或时间
SHOW CREATE TABLE tablenam; 显示表结构
mysql中文
http://database.iyunv.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 />";
}
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com