总算是强迫自己把第一篇给看完了,在这里做一个小结,将一些知识点记录下来。
一、第一篇 使用PHP
1.php中的注释。php支持c、c++和shell脚本风格注释 /**/多行注释 //单行注释 # 单行注释
2.date()函数。 date("H:i:s"); //15:24:23 date("ymd"); //20130707
3.使用$_POST['username'] $_GET'['username']来得到表单内容,取决于提交表单时使用的方法是post 还是get。无论使用什么方式,都可以使用$_REQUEST['username']来得到表单内容。
4.标识符是变量名称的名称,标识符可以是任何长度。由字母、数字、下划线组成。不能以数字开始。标志符区分大小写,但是函数名称是个例外,函数名不区分大小写。php的特性之一就是它不要求在使用变量之前声明变量。
5.php中的8种数据类型,6种常用,2种不常用。
Integer(整数) 用来表示整数
Float(浮点数,也叫Double,双精度值) 用来表示所有实数
String(字符串) 用来表示字符串
Boolean(布尔值) 用来表示true 或false
Array(数组) 用来保存具有相同类型的多个数据项。
Object(对象) 用来保存类的实例
还有两个特殊的类型:NULL(空)和resource(资源)没有被赋值,已经被重置的为NULL。特定的内置函数(例如数据库函数)将返回resource类型的变量。
6.声明和使用常量 define('OILPRICE',100); 没有$符号 使用时直接使用名称即可。 echo OILPRICE; 可以使用phpinfo()来查看php预定义的许多常量。
7.变量的作用域
超级全局变量,它们可以在任何地方使用和可见。$GLOBALS['myvariable'] $_SERVER 服务器环境变量数组 $_GET $_POST $_COOKIE $_FILES与文件上传相关的变量数组 $_ENV 环境变量数组 $_REQUEST 所有用户输入的变量 数组,包括$_GET $_POST 和$_COOKIE所包含的输入内容。 $_SESSION 会话变量数组
8. $a and $b $a or $b 与 $a && $b $a || $b 作用相同,但是前者的优先级要低。
9.错误抑制操作符 。错误抑制操作符@可以在任何表达式前面使用,例如 $a = @(57/0);如果没有@操作符,代码会产生一个除0警告,使用这个操作符,警告会被抑制住。
10.执行操作符。它是一对反向单引号`` 在键盘上数字1的左边。在windows 上可以使用如下代码得到c盘下的文件列表
$output = `dir c:`; echo "<pre>$output</pre>"
11.一些常用函数的使用
$a = 4; echo gettype($a).'<br>'; //得到数据类型 settype($a,'double'); //设置数据类型 echo gettype($a)
is_array()检查变量是否是数组,is_double() is_string() is_null() 检查变量是否为null is_scalar() 检查该变量是否是标题,即一个整数,浮点数,布尔值,字符串。is_numeric() 检查该变量是否是任何类型的数字或字符串。is_callable() 检查该变量是否是有效的函数名称。
isset()用来测试变量的状态。如果变量存在,则返回true。与之相对的unset()函数来销毁一个变量。bool empty() 可以用检查一个变量是否存在,以及它的值是否为非空和非0,返回true 或false.
12.if 语句
$a = 69; if($a>90){ echo "a is bigger than 40"; }elseif($a>50) { echo "a is bigger than 50"; }else { echo "last"; } //如果有一个条件成立,则以后的语句就不会再执行了,这一点和 switch遇到 break:语句时才会停止是不相同的。 //如果使用了 if else 后面不能再加elseif 通常情况即用{}来将条件语句后面的值括住时, else if 与 elseif 作用相同 //但是手册上说如果如果不是用花括号,而是用: 则只能用 elseif ,用else if 时会出现编译错误 需要注意的是与: 匹配的是 endif
13.如果希望停止一段代码的执行,可以有3种方法。在switch循环时可以用break; 在for循环中如果希望跳到下一次循环,可以使用continue语句。如果希望结束整个php脚本的执行,可以使用exit;
14.php中的文件处理。
要在php中打开一个文件,可以使用fopen()函数。$fp = fopen('ordes.txt', 'ab' , true); 如果fopen()成功打开了一个文件,该函数返回一个指向这个文件的文件指针。文件指针保存在$fp中,当希望读写这个文件时,将使用这个变量来访问文件。
php中写文件,fwrite($fp, $outputstring ,strlen($outputstring)); 将保存在$outputstring中的字符串写入到$fp指向的文件中。 strlen()用来得到字符串的长度。
关闭文件。fclose($fp); 如果文件被成功地关闭,函数将返回一个true值,反之,该函数将返回false;
知道何时读完文件 feof() 全称File End Of File 。 while(! feof($fp)) 用while循环来读取文件,直到文件末尾。
每次读取一行数据。fgets() 、fgetss()、fgetcsv() $order = fgets($fp ,999) ; fgetss()与fgets()相似,但是它可以过滤字符串中包含的php和html标记。
读取整个文件。 readfile()、fpassthru() 、file() 。readfile('ordes.txt'); 打开文件并将内容输出来浏览器中
$fp = fopen('ordes.txt', 'ab' , true); fpassthru($fp); 如果操作成功,fpassthru()返回true,否则返回false
$filearray = file('orders.txt'); 将整个文件读入到一个名为$filearray的数组中,文件中的第一行都将作为一个元素保存在这个数组中。
读取一个字符。fgetc() 。 $char = fgetc($fp);
读取任意长度 fread()。 string fread(resource fp, int length);
查看文件是否存在。file_exists 确定文件大小 filesize() nl2br() 函数将输出的\n字符换成html的换行符<br/>
删除一个文件。unlink() 无法删除将返回false 。php中没有名为delete的函数。
rewind()可以将文件指针复位到文件的开始。ftell()可以以字节为单位报告文件指针当前在文件中的位置 。fseek()可以将文件指针指向文件的某个位置。
文件锁定。flock()
15.php中的数组。
echo '<br>'; //数组的使用1 $products = array('car','picture','camara'); foreach($products as $m){ echo $m." "; } echo '<br>'; //数组的使用2 $products2 =array('car'=>'bmw','house'=>'miantian'); foreach($products2 as $key =>$m){ echo "$key". "$m"." "; } echo '<br>'; //数组的使用3 list可以将一个数组分解成一系列的值 reset($products2); //reset函数将数组内部的指针倒回到第一个单元,并返回数组的第一个元素的值,如果数组为空则返回false //echo reset($products2); 输出bmw while(list($key,$value) = each($products2)){ // 使用each时,如果上面已经用到了$products2,则必需要用reset将当前元素重置到数组的开始处 echo "$key-->"."$value"." "; }
16.数组的排序
$prices = array('Trice'=>100,'Oil'=>10,'Plugs'=>4,'acc'=>5); asort($prices); var_dump($prices); //4,5,10,100 按照数组的值来进行升序排列 arsort 反向排序 krsout也是反向 echo '<br>'; ksort($prices); var_dump($prices); //Oil,Plugs,Trice acc ksort按照数组的关键值进行升序排序,应该是按ascii排序的 a为97 小写字母比大写子母大。 echo '<br>'; sort($prices); var_dump($prices); //array(4) { [0]=> int(4) [1]=> int(5) [2]=> int(10) [3]=> int(100) } 使用sort之后,会对数组的关键字重新赋值成数值,故最好只用于1维数组 // sort 是对值进行升序排序,如果仅仅是用于一维数组,且其关键字为数字 则其功能与 asort()相同。 echo '<br>'; $arr4=array(35,26,58,96,12,36,48); shuffle($arr4); //随机排序 print_r($arr4); echo '<br>'; $arr5=array(35,26,58,96,12,36,48); $arr6 = array_reverse($arr5); //反向排序 Array ( [0] => 48 [1] => 36 [2] => 12 [3] => 96 [4] => 58 [5] => 26 [6] => 35 ) $arr6 = array_reverse($arr5,true); //Array ( [6] => 48 [5] => 36 [4] => 12 [3] => 96 [2] => 58 [1] => 26 [0] => 35 ) 如果参数加了true 会保留原来的键名 print_r($arr6);
17.数组的其它操作
每个数组都有一个内部指针指向数组中的当前元素。当使用each()时,就间接地使用了这个指针。
如果创建一个新数组,那么当前指针就被初始化,并指向数组的第一个元素。调用current($array_name)将返回第一个元素
调用next()或each()将使指针前移一个元素。each($array_name)会在指针前移一个位置之前返回当前元素,而next($array_name) 是将指针前移,返回新的当前元素。
reset($array_name)返回指向数组第一个元素的指针,end(array_name)将指针移到数组末尾。分别返回数组的第一个元素和最后一个元素。
prev()函数和next()函数相反。将当前指针往回移一个位置然后再返回新的当前元素。
使用each() current() reset() end() next() pos() prev()可以自己编写任何顺序浏览数组的代码。以下为反向输入数组元素例子。
$array = array(1,2,3); $value = end($array); while($value){ echo "$value <br>"; $value = pre($array); }
对数组的每一个元素使用相同方式修改。使用 array_walk()函数。
18.字符串的格式化
21.require('demo.php'); 与include('demo.php');
二、使用MySql
1.