php语法

发布时间:2016-05-28 17:57:54   来源:文档文库   
字号:

1. date();//里面传入格式化的字符串,date(‘H:I, js F Y’);

2. $ 变量 //表单变量三种风格$tireqty(会出现安全问题),短风格,变量名同表单名,需要设置register_globalson

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. 控制结构ifif else if else if switch ,while,for, forearch(专门用于数组),do…while

18. 结构控制 break continueexit(结束脚本运行) 。结构控制中的“{”可以用“:”代替,二结束“}”可以用对应的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);//读取直到\neo或者998B。此函数有两个变体fgetss();//可以过滤phphtml标记。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)){//listeach()返回的数组中包含的01两个元素重新命名为新变量

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 字符会被替换为 &lt; &gt; 。这样可防止攻击者通过在表单中注入 HTML JavaScript 代码(跨站点脚本攻击)对代码进行利用。

25. $_SERVER["PHP_SELF"] 变量能够被黑客利用!

如果您的页面使用了 PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。

跨站点脚本(Cross-site scriptingXSS)是一种计算机安全漏洞类型,常见于 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 格式!";

}

29. PHP - 验证 URL

以下代码展示的方法检查 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);?>

32.

本文来源:https://www.2haoxitong.net/k/doc/5f3c09d116fc700abb68fcdf.html

《php语法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式