1. date();//里面传入格式化的字符串,date(‘H:I, js F Y’);
2. $ 变量 //表单变量三种风格$tireqty(会出现安全问题),短风格,变量名同表单名,需要设置register_globals为on值
a) $_POST[‘tireqty’] 中等风格 ,推荐风格
b) $HTTP_POST_VARS[‘tireqty’]冗长风格,信息详细
3. 变量的赋值$tireqty = $_POST[‘tireqty’];//通过POST方法获取的传递出来的值赋值给新建变量,变量的作用域。
4. 连字符,连接字符串“.”。
5. 变量和字符串,字符串用单引号,双引号,heredoc语法<<<。单引号字符串作文本处理,双引号字符串变量名会转换成文本,heredoc类似也补插像双引号
6. 标识符(变量的名称)的规则
7. Php 的数据类型 Integer, Float ,String ,Boolean , (保存相同类型的数据), Object(保存类的实例)。变量的数据类型有赋值确定,类型可以转换。
8. 可变变量,动态的改变一个变量的名称。原理是把一个变量的名称作为另一个变量的值。
9. 声明和使用常量 常量值不能被改变。define(‘PRICE’,2);//定义常量。查看php预定义的常量phpinfo();
10. 变量的作用域,超级全局变量($GLOBALS ,$_SERVER ,$_GET ,$_POST ,$_COOKIE ,$_FILES ,$_ENV ,$_REQUEST, $_SESSION)
i. 常量
ii. 脚本中的全局变量
iii. 函数内部的全局变量
iv. 函数内部的静态变量
v. 函数内部变量
11. 11.算数操作符(+,-,*,/,%),字符串操作符(.),赋值操作符(m被设置为n),复合赋值操作符,(+= -= /= *= %= .=),递增和递减(++,--),引用操作($b=$a,$a=5),比较操作(== ===(恒等) != !==等),逻辑运算符(! && || (and or xor作用同! && ||但是优先级低) ),位操作符。其他操作符(, ?: @(错误抑制符),执行操作符,), 数组擦操作符(+ == === != <> !==), 类操作符(instaceof)。
12. 操作符的优先级 用()改变,以免出错。
13. 可变函数用来操作和测试变量的类型,最常用的gettype(); settype()//函数原型 string gettype(mixed var);settype(mixed var,string type);//type( bool ,int ,double,string,array,object,array,resourec);//demo $a=5;gettype($a);settype($a,’double’)
14. 测试函数还有is_array();is_double();is_float;is_real();is_long();is_null();is_callable();//所有方法都需呀传入一个变量作为参数
15. 可变函数测试变量的状态isset();//bool isset(mixed var;[mixed var[,…]])//变量是否存在
unset();bool isset(mixed var;[mixed var[,…]]//销毁传进来的变量
empty();bool empty(mixed var);//判断变量是否为非空或非0
16. 调用一个函数实现转换变量数据类型的目的 intval();floatval(); strval();
17. 控制结构if,if else, if else if ,switch ,while,for, forearch(专门用于数组),do…while
18. 结构控制 break ,continue,exit(结束脚本运行) 。结构控制中的“{”可以用“:”代替,二结束“}”可以用对应的endxxx 如endif,endwhile
19. declare控制结构
数据存储与检索
1. 文件和数据库。打开一个文件fopen();$fp=fopen(“路径”,‘文件模式’);“..”表示文档根目录的父目录$fp=fopen(“路径”,’ab’);//推荐文件模式 r r+ ,w w+,x x+, a a+,b ,t
2. 文件处理步骤 打开文件-》读写文件-》关闭文件
3. 可通过ftp 或http打开一个文件
4. 向文件中写 fwrite();//fwrite($fp,$outputstring),可以设置第三个参数写的长度//也可以用fputs();替换函数int file_put_contents(string filename,string data[,int flags[,resource content]])//此函数可以在不调用fopen()或fclose()以前将包含data的数据写入filename中 ,可以自己设值$outputstring 的格式 如加制表符 换行符等
5. 关闭文件 fclose($fp);
6. 读文件fopen(“路径”, ‘rb’);判断文件读完feof();//while(!feof($fp)){};
7. 每次读取一行$order=fgets($fp,999);//读取直到\n或eo或者998B。此函数有两个变体fgetss();//可以过滤php和html标记。fgetcsv(); //可将文件按长度和界定符分成多行
8. 还可以读取整个文件readfile(),fpassthru,file();
9. 读取一个字符 fgetc();
10. 读取任意长度 fread();//fread(fp,length).
11. 相关文件函数file_exists(“path”);//文件是否存在。filesize(path);//文件大小。删除一个文件unlink(“path”);rewind($fp);//将文年指针置到文件开始。ftell($fp);以字节为单位报告当前文件指针的位置。fseek();//将文件指针指向某个位置。
12. 文件锁flock();//当一个文件再打开并且在读写之前调用此函数flock($fp,LOCK_EX);在文件写完之后flock($fp,LOCK_UN );
13. 数组定义$pro = array(‘tir’, ‘oil’ ,’spr’); sort();//对数组排序。range()可以创建升序排序数组range(1,10,2);range(‘a’,’z’);数组可以直接添加新元素$pro[3]=’tre’;//把新元素添加到末尾。可以使用for 或者forearch访问数组
14. 数组初始化$pro=array(‘Tri’=>100,’Oil’=>10,’Spa’=>4);
forearch($pro as $key=>$value){ //forearch访问数组
echo $key .”-” .$value.<br/>;
}
While($element =each($pro)){ // each()结构打印数组
echo $element[‘key’];
echo “-”;
echo $element[‘value’];
echo “<br/>”
}
reset($pro);//把当前元素重新设置到数组开始
while(list($product,pro) = each($pro)){//list将each()返回的数组中包含的0,1两个元素重新命名为新变量
echo “$procuct-$pro<br/>”;
}
15. 数组操作符 +(联合,后面的附加到前面的,但是关键字冲突的不会被添加)//$a+$b;
==(等价,包含相同元素返回true)
===(恒等,包含相同顺序和类型元素返回true)
!=(不等价,不包含相同元素返回true)
<>(不等价,同上一条)
!==(不哼等,不包含相同顺序类型元素返回true)
16. 二维数组$pro = array( array(‘tir’ , ‘tires’,100) ,
array(‘tir1’ , ‘tires’,100),
array(‘ti2r’ , ‘tires’,100) );
//可以用双for访问每个元素
for($row =0;$row <3;$row++){
for($column =0; $column<3; $column++){
echo ‘|’.$pro[$row][$column];
}
echo ’ |<br/>’;
}
for($row=0; $row<3;$row++){//定位行 访问二维数组
echo ‘|’ .pro[$row][‘tir’] .’|’ .pro[$row][‘ti1r’] .’|’ .pro[$row][‘tir2’].’|<br>’
}
for($row=0; $row<3;$row++){
while(list($key , $value) = each( $pro[$row])){
echo “|$value”;
}
Echo ‘|<br/>’;
}
17. 可以对二维数组初始化 同一维数组 三维数组(三层for)
18. 数组排序 升序 sort($pro);//区分大小写 sort的排序参数 assort();//按元素值进行排序,ksort();//按关键字字母顺序排序
19. 数组排序 降序 rsort();// arsort();//krsort();
20. 自定义排序 function compare($x ,$y){//
if($x[1]==$y[1]){
return 0;
}else if($x[1]<$y[1]){
return -1;//正向
//return 1;反向
}else{
retun1 //正向
//return -1; 反向
}
}
usort($pro,’compare’);//调用usort声明
21. 对数组重新排序 对各元素随机排序shuffle(); array_reverse();对原数组反向排序
$numbers = range(1,10,-1);//创建一个10~1排列的数组
22. 将文件载入一个数组中
$pro=file(“path”);//将文件内容载入一个数组,每行算一个元素
$num= count($pro);//统计数组中元素个数
23. 执行数组的其他操作 current();返回数组指针指向的当前。next()和each()数组指针指向下一个元素,next()是先移动指针,再返回当前元素,而each()是先返回当前元素再移动指针。reset()返回指向数组第一个元素的指针。end()指向数组末尾,并返回所指向的元素。pre()将当前指针回移(当前一个的前一个元素)并指向当前元素
24. htmlspecialchars() 函数把特殊字符转换为 HTML 实体。这意味着 < 和 > 之类的 HTML 字符会被替换为 < 和 > 。这样可防止攻击者通过在表单中注入 HTML 或 JavaScript 代码(跨站点脚本攻击)对代码进行利用。
25. $_SERVER["PHP_SELF"] 变量能够被黑客利用!
如果您的页面使用了 PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。
跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型,常见于 Web 应用程序。XSS 能够使攻击者向其他用户浏览的网页中输入客户端脚本。
假设我们的一张名为 "test_form.php" 的页面中有如下表单:
如果避免 $_SERVER["PHP_SELF"] 被利用?
通过使用 htmlspecialchars() 函数能够避免 $_SERVER["PHP_SELF"] 被利用。
表单代码是这样的:
1. (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
2. (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\
26. htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
∙ & (和号)成为 &
∙ " (双引号)成为 "
∙ ' (单引号)成为 '
∙ < (小于)成为 <
∙ > (大于)成为 >
27. 以下代码展示的简单方法检查 name 字段是否包含字母和空格。如果 name 字段无效,则存储一条错误消息:
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameErr = "只允许字母和空格!";
}
preg_match() 函数检索字符串的模式,如果模式存在则返回 true,否则返回 false。
28. 以下代码展示的简单方法检查 e-mail 地址语法是否有效。如果无效则存储一条错误消息:
$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$emailErr = "无效的 email 格式!";
}
以下代码展示的方法检查 URL 地址语法是否有效(这条正则表达式同时允许 URL 中的斜杠)。如果 URL 地址语法无效,则存储一条错误消息:
$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i",$website)) {
$websiteErr = "无效的 URL"; }
30. date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
echo "今天是 " . date("Y/m/d") . "<br>";//
© 2010-<?php echo date("Y")?>;//
php echo "现在时间是 " . date("h:i:sa");?>;//
php date_default_timezone_set("Asia/Shanghai");
echo "当前时间是 " . date("h:i:sa");?>//
31.通过 PHP mktime() 创建日期 php $d=mktime(9, 12, 31, 6, 10, 2015);
echo "创建日期是 " . date("Y-m-d h:i:sa", $d);?>
本文来源:https://www.2haoxitong.net/k/doc/5f3c09d116fc700abb68fcdf.html
文档为doc格式