零:重要的PHP超级全局变量

1、$_SERVER

$_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户配置及当前请求环境的有关信息。根据服务器不同,$_SERVER中的变量值和变量个数会有差别,不过一般都可以找到CGI1.1规范中定义的变量。其中包括:

$_SERVER[ 'HTTP_REFERER' ] ; 引导用户到达当前位置的页面的URL ;

$_SERVER[ 'REMOTE_ADDR‘ ] ; 客户IP地址 ;

$_SERVER[ ’REQUEST_URI‘ ] ; URL的路径部分。如果URL是[url]http://www.example.com/blog/apache/index.html[/url] ,那么URI就是/blog/apache/index.html 。

$_SERVER[ 'HTTP_USER_AGENT' ] ; 客户的用户代理,一般会提供操作系统和浏览器的有关信息。

2、$_GET

$_GET超级全局变量包含使用GET方法传递的参数的有关信息。如果请求URL为[url]http://www.example.com/index.html?cat=apache&id=157[/url], 就可以使用$_GET超级全局变量访问如下变量:

$_GET[ 'cat' ] = "apache" ;

$_GET[ 'id' ]   = "157" ;

默认情况下,要访问通GET方法传递的变量,$_GET超级全局变量是唯一的途径。

3、$_POST

$_POST超级全局变量包含用POST方法传递的参数的有关信息。

<form caction="subscribe.php" method = "post">

<p>

Email address : <br>

<input type="text" name="email" size="20" maxlength="so" value="">

</p>

<p>

Password : <br>

<input type="password" name="pswd" size="20" maxlength="15" value="">

</p>

<p>

<input type="submit" name="subscribe" value="subscribe!">

</p>

</form>

通过脚本subscribe.php,就可以使用下面的POST变量:

$_POST[ 'email' ] = " jason@example.com " ;

$_POST[ 'pswd' ] = "rainyday" ;

$_POST[ 'subscribe' ] = "subscribe!" ;

与$_GET一样,在默认情况下,$_POST超级全局变量是访问POST变量的唯一途径。

4、$_COOKIE

$_COOKIE超级全局变量存储了通过HTTP cookie传递到脚本的信息。这些cookie一般是由以前执行的PHP脚本通过PHP函数setcookie ( ) 设置的。例如,假设使用 setcookie ( )存储了一个名为 example.com、值为ab2213的cookie。以后就可以通过调用$_COOKIE[ ' example.com' ]来获得这个值。

5、$_FILES

$_FILES超级全局变量包含通过POST方法向服务器上传的数据的有关信息。这个超级全局变量与其他的变量有所不同,它是一个二维数组,包含5个元素。第一个下标标示表单的文件上传元素名;第二个下标是五个预定义下标之一,这些下标描述了上传文件的某个属性:

△  $_FILES[ 'upload-name' ][ 'name' ]; 从客户端向服务器上传文件的文件名;

△  $_FILES[ 'upload-name' ][ 'type' ]; 上传文件的MIME类型,这个变量是否赋值取决于浏览器的功能。

△  $_FILES[ 'upload-name' ][ 'size' ];  上传文件的大小(以字节为单位);

△  $_FILES[ 'upload-name' ][ 'tmp_name' ]; 上传之后,将此文件移到最终位置之前赋予的临时名。

△  $_FILES[ 'upload-name' ][ 'error' ]; 上传状态码。尽管这个变量的名为 error ,但实际上在成功的情况下也会填写这个变量。它有五个可能的值:

■  UPLOAD_ERR_OK   文件成功上传

■  UPLOAD_ERR_INI_SIZE  文件大小超出了 upload_max_filesize 指令所指定的最大值。

■  UPLOAD_ERR_FORM_SIZE  文件大小超出了MAX_FILE_SIZE 隐藏表单域参数(可选)指定的最大值。

■  UPLOAD_ERR_PARTIAL  文件只上传了一部分

■  UPLOAD_ERR_NO_FILE  上传表单中没有指定文件

6、$_ENV

$_ENV超级全局变量提供PHP解析所在服务器环境的有关信息。此数组中的变量包括:

△  $_ENV[ 'HOSTNAME' ]  服务器的主机名

△  $_ENV[ 'SHELL' ]  系统 shell

7、$_REQUEST

$_REQUEST超级全局变量是一个全能选手,它记录了通过各种方法传递给脚本的变量,特别是GET ,POST 和 COOKIE 。 这些变量的顺序不依赖于它们在发送脚本中出现的顺序,而是依赖于 variables_order 配置指令所指定的顺序。建议少用这个超级变量,因为它不够安全。

8、$_SESSION

$_SESSION 超级全局变量包含与所有会话有关的信息。注册会话信息能为你提供便利,这样就能在整个网站中引用这些会话信息,而无需通过GET或POST显示的传递数据。

9、$GLOBALS

$GLOBALS 超级全局变量数组可以认为是超级全局变量的超集,包含全局作用域内的所有变量。执行下面的代码可以查看$GLOBALS 中所有的变量。

print ' <pre>' ;

print_r ($GLOBALS);

print ' </pre>' ;

一 :php处理字符串常用函数

1查找字符位置函数:

strpos($str,search,[int]):查找search在$str中的第一次位置从int开始;

stripos($str,search,[int]):函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感

strrpos($str,search,[int]):查找search在$str中的最后一次出现的位置从int开始

strripos($str,search,[int]):同上,该函数对大小写不敏感

2、提取子字符串函数(双字节)

substr($str,int start[,int length]):从$str中strat【下标(0,length-1)】位置开始提取[length长度的字符串]。

strstr($str1,$str2):从$str1(第一个的位置)搜索$str2并从它开始截取到结束字符串;若没有则返回FALSE。

stristr() 功能同strstr,只是不区分大小写。

strrchr() 从最后一次搜索到的字符处返回;用处:取路径中文件名

3、替换字符串的PHP字符串函数

str_replace(search,replace,$str):从$str中查找search用replace来替换

str_ireplace(search,replace,$str):同上,该函数对大小写不敏感

strtr($str,search,replace):这个函数中replace不能为"";

substr_replace($Str,$rep,$start[,length]):$str原始字符串,$rep替换后的新字符串,$start起始位置,$length替换的长度,该项可选

4、字符长度

int strlen($str)

5、比较字符函数

int strcmp($str1,$str2):$str1>=<$str2分别为正1,0,-1(字符串比较)

strcasecmp() 同上(不分大小写)

strnatcmp("4","14") 按自然排序比较字符串

strnatcasecmp() 同上,(区分大小写)

6、分割成数组的PHP字符串函数

str_split($str,len):把$str按len长度进行分割返回数组

split(search,$str[,int]):把$str按search字符进行分割返回数组int是分割几次,后面的将不分割

expload(search,$str[,int])

7、去除空格:

ltrim()、rtrim()、trim()

8、加空格函数

chunk_split($str,2):向$str字符里面按2个字符就加入一个空格;

9、chr、ord--返回指定的字符或ascii

10、HTML代码有关函数

nl2br():使\n转换为<br>。

strip_tags($str[,'<p>']):去除HTML和PHP标记

在$str中所有HTML和PHP代码将被去除,可选参数为html和PHP代码作用是将保留

可选参数所写的代码。

如:echo strip_tags($text, '<br><p>');

htmlspecialchars($str[,参数]):页面正常输出HTML代码参数,是转换方式

11、字符大小写转换的PHP字符串函数

strtolower($str): 字符串转换为小写

strtoupper($str): 字符串转换为大写

ucfirst($str): 将函数的第一个字符转换为大写

ucwords($str): 将每个单词的首字母转换为大写

12、数据库相关的PHP字符串函数

addslashes($str):使str内单引号(')、双引号(")、反斜线(\)与 NUL

字符串转换为\',\",\\。

magic_quotes_gpc = On :自动对 get,post,cookie的内容进行转义

get_magic_quotes_gpc():检测是否打开magic_quotes_gpc

stripslashes(): 去除字符串中的反斜杠

13 确定字符串长度

* int strlen(string str)

14 比较两个字符串

* 1、strcmp函数对两个字符串进行二进制安全的比较,并区分大小写

* int strcmp(string str1,string str2)

* 2、以不区分大小写的方式比较两个字符串

* int strcasecmp(string str1,string str2)

* 3、求两个字符串相同部分

* int strspn(string str1,string str2)

* 4、求两个字符串的不同部分

* int strcspn(string str1,string str2)

15 处理字符串大小写

* 1、将字符串全部转换为小写

* string strtolower(string str)

* 2、将字符串全部转化为大写

* string strtoupper(string str)

* 3、将字符串第一个字符大写

* string ucfirst(string str)

* 4、将字符串中的每个单词变成大写

* string ucword(string str)

16 字符串与HTML相互转换

* 1、将换行符转换为HTML终止标记

* string bl2br(string str)

* 2、将特殊字符转换wieldHTML等价形式

* string htmlentities(string str[,int quote_style[,int charset]])

* 3、使用特殊的HTML字符用于其他目的

* string htmlspecialchars(string str[,int quote_style[,string charset]])

* 4、将文本转换为HTML等价形式

* array get_html_translaction_table(int table[,int quote_style])

* 5、创建一个自定义的转换清单

* string strtr(string str,array replacements)

* 6、将HTML转换为纯文本

* string strip_tags(string str[,string allowable_tags])

17 正则表达式函数的替代函数

* 1、strtok函数根据预定义的字符串列表来解析字符串

* string strtok(string str,string tonens)

* 2、根据预定义的定界符分析字符串

* array explode(string separator,string str[,int limit])

* 3、将数组转换为字符串

* string implode(string delimiter, array array)

* 4、解析复杂的字符串

* int strpos(string str,string substr[,int offset])

* 5、找到字符串的最后一次出现

* int strrpos(string str,char substr[,offset])

* 6、用另外一个字符串替代字符串的所有实例

* mixed str_replace(string occurrence,mixed replacement,mixed str[,int count])

* 7、获取字符串的一部分strstr返回字符串中预定义字符串第一次出现开始的剩余部分

* string strstr(string str,string occurrence)

* 8、根据预定义的偏移返回字符串一部分

* string substr(string str,int start[,ing length])

* 9、确定字符串出现的频率

* int substr_count(string str,string substring)

* 10、用另一个字符串替换一个字符串的一部分

* string substr_replace(string str,string replacement,int start[,int length])

18 填充和剔除字符串

* 1、从字符串开始出裁剪字符

* string ltrim(string str[,string charliset])

* 2、从字符串结尾裁剪字符

* string rtrim(string str[,string charliset])

* 3、从字符串两端裁剪字符

* string trim(string str[,string charliset])

* 4、填充字符串

* string str_pad(string str,int length[,string pad_string[,int pad_type]])

19字符和单词计数

* 1、字符串中字符计数

* mixed count_chars(string str[,mode])

* 2、字符串中单词总数计数

* mixed str_word_count(string str[,int format])

二、数组操作的基本函数
1 数组的键名和值
array_values($arr); 获得数组的值
array_keys($arr);获得数组的键名
array_flip($arr);数组中的值与键名互换(如果有重复前 面的会被后面的覆盖)
in_array("apple",$arr);在数组中检索apple
array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名
array_key_exists("apple",$arr);检索给定的键名是否存在数组中
isset($arr[apple]): 检索给定的键名是否存在数组中

2 数组的内部指针
current($arr);返回数组中的当前单元
pos($arr);返回数组中的当前单元
key($arr);返回数组中 当前单元的键名
prev($arr);将数组中的内部指针倒回一位
next($arr);将数组中的内部指针向前移动一位
end($arr); 将数组中的内部指针指向最后一个单元
reset($arr;将数组中的内部指针指向第一个单元
each($arr);将返回数组当前元素 的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr);获得数组当前元素的键名和值

3 数组和变量之间的转换
extract($arr);用 于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用 方法  echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组

4 数组的分段和填充
数组的分段
array_slice($arr,0,3); 可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array("black","maroon"));可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除

5 分割多个数组
array_chunk($arr,3,TRUE);可以将一个数组分割成多个,TRUE为保留原数 组的键名

6 数组的填充
array_pad($arr,5,'x'); 将一个数组填补到制定长度

7 数组与栈
array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr);将数组栈的最后一个元素弹出(出栈)

8 数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改 为从零技术 , 文字键名不变)
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素

9 回调函数
array_walk($arr,'function','words');使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa("function",$arr1,$arr2);可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
array_filter($arr,"function");使用回调函数过滤数组中的每个元素,如果回调函数为 TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变
array_reduce($arr,"function","*"); 转化为单值函数(*为数组的第一个值)

10数组的排序
通过元素值对数组排序
sort($arr);由小到大的顺序排序(第二个参数为按什么 方式排序)忽略键名的数组排序
rsort($arr);由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
asort($arr);由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,"function");使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序

通过键名对数组排序
ksort($arr);按照键名 正序排序
krsort($arr);按照键名逆序排序
uksort($arr,"function");使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)

自然排序法排序
natsort($arr);自然排序 (忽略键名)
natcasesort($arr);自然排序(忽略大小写,忽略键名)

12 数组的计算
数组元素的求和
array_sum($arr);对数 组内部的所有元素做求和运算

13 数组的合并
array_merge($arr1,$arr2);合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2;对于相同的键名只保留后一个
array_merge_recursive($arr1,$arr2); 递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面

14 数组的差集
array_diff($arr1,$arr2);返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3); 返回差集结果数组,键名也做比较

数组的交集
array_intersect($arr1,$arr2);返回交集结果数组
array_intersect_assoc($arr1,$arr2); 返回交集结果数组,键名也做比较

其他的数组函数
range(0,12);创建一个包含指 定范围单元的数组
array_unique($arr);移除数组中重复的值,新的数组中会保留原始的键名
array_reverse($arr,TRUE); 返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
//srand((float)microtime()*10000000); 随机种子触发器
array_rand($arr,2);从数组中随机取出一个或 多个元素
shuffle($arr);将数组的顺序打乱

 

三 php时间函数

1,年-月-日
echo date('Y-m-j');
2009-05-29
echo date('y-n-j');
09-2-29

大写Y表示年四位数字,而小写y表示年的两位数字;
小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。

echo date('Y-M-j');
2009-May-6

echo date('Y-m-d');
2009-05-06

大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);
没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。

echo date('Y-M-j');
2009-Feb-6

echo date('Y-F-jS');
2009-February-6th

大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)
大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。
小结:
表示年可以用大写的Y和小写y;
表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);
表示日可以用小写d和小写j,大写S表示日期的后缀。

2,时:分:秒

默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。

echo date('g:i:s a');
5:56:57 am

echo date('h:i:s A');
05:56:57 AM

小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。
当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。

echo date('G:i:s');
14:02:26

大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数

小结:
字母g表示小时不带前导,字母h表示小时带前导;
小写g、h表示12小时制,大写G、H表示24小时制。

3,闰年、星期、天

echo date('L');
今年是否闰年:0

echo date('l');
今天是:Tuesday

echo date('D');
今天是:Tue

大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;
小写l表示当天是星期几的英文全写(Tuesday);
而使用大写D表示星期几的3个字符缩写(Tue)。

echo date('w');
今天星期:2

echo date('W');
本周是全年中的第 06 周

小写w表示星期几,数字形式表示
大写W表示一年中的星期数

echo date('t');
本月是 28 天

echo date('z');
今天是今年的第 36 天

小写t表示当前月份又多少天
小写z表示今天是本年中第几天

4,其他

echo date('T');
UTC
大写T表示服务器的时间区域设置

echo date('I');
0
大写I表示判断当前是否为夏令时,为真返回1,否则为0

echo date('U');
1170769424
大写U表示从1970年1月1日到现在的总秒数,就是Unix时间纪元的UNIX时间戳。

echo date('c');
2007-02-06T14:24:43+00:00
小写c表示ISO8601日期,日期格式为YYYY-MM-DD,用字母T来间隔日期和时间,时间格式为HH:MM:SS,时区使用格林威治标准时间(GMT)的偏差来表示。

echo date('r');
Tue, 06 Feb 2009 14:25:52 +0000
小写r表示RFC822日期。

四文件即目录的操作

1 获得文件名:
basename();
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。
eg:

$path = "/home/httpd/html/index.php";
$file = basename($path,".php"); // $file is set to "index"

2 得到目录部分:
dirname();
给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
eg:

$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"

3 得到路径关联数组
pathinfo();
得到一个指定路径中的三个部分:目录名,基本名,扩展名。
eg:

$pathinfo = pathinfo("www/test/index.html");
var_dump($pathinfo);
// $path['dirname']
$path['basename']
$path['extenssion']

文件类型
1. filetype();
返回文件的类型。可能的值有 fifo,char,dir,block,link,file 和 unknown。
eg:

echo filetype('/etc/passwd'); // file
echo filetype('/etc/');        // dir

得到给定文件有用信息数组(很有用)

1. fstat();
通过已打开的文件指针取得文件信息
获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。
eg:

// 打开文件
$fp = fopen("/etc/passwd", "r");
// 取得统计信息
$fstat = fstat($fp);
// 关闭文件
fclose($fp);
// 只显示关联数组部分
print_r(array_slice($fstat, 13));

2. stat()
获取由 filename 指定的文件的统计信息(类比fstat())

计算大小
1. filesize()
返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。
eg:

// 输出类似:somefile.txt: 1024 bytes
$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

2. disk_free_space()
获得目录所在磁盘分区的可用空间(字节单位)
eg

// $df 包含根目录下可用的字节数
$df = disk_free_space("/");
//在 Windows 下:
disk_free_space("C:");
disk_free_space("D:");

3. disk_total_space()
返回一个目录的磁盘总大小
eg:(同上,换掉函数)

另:如需要计算一个目录大小,可以编写一个递归函数来实现

代码

function dir_size($dir){
$dir_size = 0;
if($dh = @opendir($dir)){
while(($filename = readdir($dh)) != false){
if($filename !='.' and $filename !='..'){

if(is_file($dir.'/'.$filename)){
$dir_size +=filesize($dir.'/'.$filename);

}else if(is_dir($dir.'/'.$filename)){

$dir_size +=dir_size($dir.'/'.$filename);
}
}

}#end while

}# end opendir

@closedir($dh);
return $dir_size;
} #end function

访问与修改时间
1. fileatime(): 最后访问时间
2. filectime(): 最后改变时间(任何数据的修改)
3. filemtime(): 最后修改时间(指仅是内容修改)

文件的I/O操作

1. fopen -- 打开文件或者 URL

mode 说明
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,
'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE
eg:

$handle = fopen("/home/rasmus/file.txt", "r");

2. file -- 把整个文件读入一个数组中(此函数是很有用的)
和 file_get_contents() 一样,只除了 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败 file() 返回 FALSE。
eg:

代码

$lines = file('http://www.example.com/');
// 在数组中循环,显示 HTML 的源文件并加上行号。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
// 另一个例子将 web 页面读入字符串。参见 file_get_contents()。
$html = implode('', file ('http://www.example.com/'));

3. fgets -- 从文件指针中读取一行
从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。
eg:

$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}

4. fgetss -- 从文件指针中读取一行并过滤掉 HTML 标记
和 fgets() 相同,只除了 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。

可以用可选的第三个参数指定哪些标记不被去掉

另:对的目录的操作:
1. opendir -- 打开目录句柄,打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。
2. readdir -- 从目录句柄中读取条目,返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。
eg:

代码

// 注意在 4.0.0-RC2 之前不存在 !== 运算符

if ($handle = opendir('/path/to/files')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
  
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
   
while ($file = readdir($handle)) {
echo "$file\n";
}
     closedir($handle);
}

3. scandir -- 列出指定路径中的文件和目录(很有用),返回一个 array,包含有 directory 中的文件和目录。
默认的排序顺序是按字母升序排列。如果使用了可选参数 sorting_order(设为 1),则排序顺序是按字母降序排列。
eg:

$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);   

另外注:

对文件属性的操作(操作系统环境不同,可能有所不一样,这点要注意)

1文件是否可读:

       boolis_readable ( string filename )

如果由 filename 指定的文件或目录存在并且可读则返回 TRUE

记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制。

2 文件是否可写

bool is_writable ( string filename )

如果文件存在并且可写则返回 TRUEfilename 参数可以是一个允许进行是否可写检查的目录名。

记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件。不计入安全模式的限制

   3  检查文件是否存在

    boolfile_exists ( string filename )

如果由 filename 指定的文件或目录存在则返回 TRUE,否则返回 FALSE

目录的操作

chdir 
□ 适用版本:PHP3, PHP4   
□ 函数功能:改变目录 
□ 函数语法:int chdir (string directory)   
□ 函数说明:改变 PHP 的工作目录到另外一个目录中, 如果没有办法改变目录, 函数会返
回 FALSE, 否则返回 TRUE。 
□ 范例程序:

<?php 
$o=chdir("/php1"); 
If($o){ 
echo "更改路径成功<br>\n"; 

else 

echo "更改路径失败<br>\n"; 

?>

□ 执行结果:如果路径存在, 则会印出下面的信息:更改路径成功如果路径不存在, 则会印
出下面的信息: Waring: ChDir: No such file or irectory (errno 2) in c:\apache\htdocs\test.php on 
line 2 更改路径失败 
□ 参考命令:无

dir

□ 适用版本:PHP3, PHP4   
□ 函数功能:目录的 class。 
□ 函数语法:new dir (string directory)   
□ 函数说明:读取一个目录的虚拟面向对象机制, 函数执行以后, directory 参数给定的目录
会被打开, 这个函数可以与其他的目录函数一起使用, 例如: readdir()、 rewinddir()、 closedir()。 
□ 范例程序:

<?php 
$d=dir("/Downloads");   echo "Handle: ".$d->handle."<br>\n"; 
echo "Path: ".$d->path."<br>\n"; 
while($entry=$d->read()){ 
echo $entry."<br>\n"; 

$d->close(); 
?>

□ 执行结果:(此结果会因电脑环境而异) Handle: Resource id #1 Path: /Downloads . .. nero 
089001D000012.Di manual.rtf 089001D000012.sw gozil35-DownloadPatch.exe 
gozil35-DownloadPatch.exe.txt manual_a-1.pdf manual_m-x.pdf   
□ 参考命令:无

closedir

□ 适用版本:PHP3, PHP4   
□ 函数功能:关闭目录的控制 
□ 函数语法:void closedir (int dir_handle)   
□ 函数说明:关闭由 dir_handle 所设置的目录控制。这个目录控制必须在之前曾通过 
opendir() 打开过。 
□ 范例程序:

<?php 
$handle=opendir('.'); 
echo "目录的操作:$handle<br>"; 
echo "目录下的文件<br>"; 
while(($file=readdir($handle))!==false){ 
echo "$file<br>"; 

closedir($handle); 
?>

□ 执行结果:(此结果会因电脑环境而异) 目录的操作:Resource id #1 目录下的文件 . . . 
test.php 
□ 参考命令:无

opendir   
□ 适用版本:PHP3, PHP4   
□ 函数功能:打开目录的控制。 
□ 函数语法:int opendir (string path) 。 
□ 函数说明:返回一个目录的控制, 给接下来的 closedir()、readdir() 及 rewinddir() 等函数
使用。在下面的范例中, 打开了一个目前正在工作的目录控制。 
□ 范例程序:

<?php 
$handle=opendir('.'); 
echo "目录的操作:$handle<br>"; 
echo "目录下的文件<br>"; 
while(($file=readdir($handle))!==false){ 
   echo "$file<br>"; 

closedir($handle); 
?>

□ 执行结果:(此结果会因电脑环境而异) 目录的操作:Resource id #1 目录下的文件 . . . 
test.php 
□ 参考命令:无

readdir

□ 适用版本:PHP3, PHP4   
□ 函数功能:从目录中读取文件名的数据。 
□ 函数语法:string readdir (int dir_handle)   
□ 函数说明:返回目录中下一个文件的文件名。在下面的第一个范例中, 会将工作目录下
的文件名全部取出并且印出。 readdir() 将会返回 . 及 .. 符号, 假如不想要这两个输出, 可
以想办法将他们删去, 如同范例 2 所示。 
□ 范例程序 1:

<?php 
$handle=opendir('.'); 
echo "目录的操作:$handle<br>"; 
echo "目录下的文件<br>"; 
while(($file=readdir($handle))!==false){ 
   echo "$file<br>"; 
}   closedir($handle); 
?>

□ 执行结果:(此结果会因电脑环境而异) 目录的操作:Resource id #1 文件 . . . counter.php 
HomePage1.txt index.html manager.php mybbs.html test.php   
□ 范例程序:

<?php 
$handle=opendir('.'); 
while($false!==($file=readdir($handle))){ 
    if($file != "." && $file != ".."){ 
    echo "$file\n"; 

closedir($handle); 
?>

□ 执行结果:(此结果会因电脑环境而异) test.php   
□ 参考命令:无

rewinddir

□ 适用版本:PHP3, PHP4   
□ 函数功能:倒转目录的控制。 
□ 函数语法:void rewinddir (int dir_handle)   
□ 函数说明:重置 dir_handle 的目录指针到目录的开始位置。 
□ 范例程序:

<?php 
$handle=opendir('/downloads'); 
echo "目录的操作:$handle<br>"; 
echo "目录下的文件<br>"; 
while(($file=readdir($handle))!==false){ 
    echo "$file<br>"; 

rewindir($handle); 
echo "目录的操作:$handle<br>"; 
echo "目录下的文件<br>"; 
while (($file=readdir($handle))!==false){     echo "$file<br>"; 

closedir($handle); 
?>

□ 执行结果:目录的操作:Resource id #1 目录下的文件 . . . adsl_all.doc adsl_faq.doc 申请
表件一(90).xls Gcime1.exe 申请表件二(90).doc 目录的操作:Resource id #1 目录下的文
件 . . . adsl_all.doc adsl_faq.doc 申请表件一(90).xls Gcimel.exe 申请表件二(90).doc 
□ 参考命令:无 

四: php常用到的sql语句

常规查询
一、查询表内容:
     select * from `tablename`
     select `nicheng` from `tablename`
     select distinct `nicheng` from `tablename` 
二、where查询:
     select `id` from `tablename` where `id`>10 or (`id`<5)
三、in用法:
     select * from `tablename` where `nicheng` in ('萧明', '秦城') 
四、between用法:
     select * from `tablename` where `id` between '003' and '009'
五、排序查询(ASC由小往大/DESC由大往小):
     select id , mima from `tablename` 
     where `nicheng`='萧明'
     order by `id` ASC
     limit 0 , 30
六、查询表中数据项数:
     select count(*) from `tablename`
七、查询字段中内容数量:
     select `nicheng`, count(*) from `tablename` group by `nicheng`

模糊查询
     SQL的模式匹配允许使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符):
一、查询以“萧”开头的数据: 
     select * from `tablename` where `nicheng` like "萧%" 
二、查询以“城”结尾的数据: 
     select * from `tablename` where `nicheng` like "%城" 
三、查询包含一个“敬”的数据:
     select * from `tablename` where `nicheng` like "%敬%"  
四、查询正好包含3个字符的名字,使用“_”模式字符: 
     select * from `tablename` where `nicheng` like "___"   
     正则表达式查询:
五、查询以z或Z开头的数据:
     select * from `tablename` where `nicheng` regexp "^[zZ]"  
     select * from `tablename` where `nicheng` regexp "^[a-zA-Z]"  
六、查询以g或G结尾的数据:
     select * from `tablename` where `nicheng` regexp "g$"

多表查询:
一、多表查询:
       $sql=mysql_query("select * from `tb_student`,`tb_sscore` where tb_=tb_ and tb_=$sno",$conn);
二、表的别名查询统计:
       $sql=mysql_query("select * from `tb_student` as tb_s,`tb_sscore` as tb_c where tb_=tb_ and tb_=$sno",$conn);
三、合并结果集:
  $sql=mysql_query("select `userid`,`username`,`sex`,`age` from `tb_worker1` union select `ygid`,`name`,`sex`,`age` from `tb_worker2`",$conn);

联合查询:
一、多表联合查询:
$sql=mysql_query("
     select * from `tablename` where `nicheng` like "%敬%"
     union 
     select * from `info` where `nicheng` like "张%"",$conn);
二、联合查询结果排序:
$sql=mysql_query("select * from `tb_1` union all select * from `tb_2` order by `age` desc",$conn);
三、条件联合查询:
$sql=mysql_query("select `pubname` from `tb_pub` group by `pubname` having `pubname`='人民邮电出版社' or `pubname`='机械工业出版社' union all select `pubname` from `tb_pub` group by `pubname` having `pubname`<>'人民邮电出版社' and `pubname`<>'机械工业出版社'",$conn);
SELECT t1 . * , , 
FROM uchome_tagspace t1
LEFT JOIN uchome_mtag t2 ON = 
WHERE =1

多表查询

一、简约嵌套查询:
       $sql=mysql_query("select * from `tb_student_score_info` where `sid` in (select `sid` from `tb_student_info` where `sid`=$sno)",$conn);
二、复杂嵌套查询:
$sql=mysql_query("select * from `tb_laborage` where `name` in (select `name` from `tb_dept` where `name` in (select `name` from `tb_personnel` where `knowledge`='本科'))",$conn);
三、嵌套查询应用:
$sql=mysql_query("select * from `tb_laborage` where `jbgz` ".$_POST[tj]." any(select `jbgz` from `tb_laborage` where name='".$_POST[name]."')",$conn);
四、IN子查询:
     1、限定范围查询:
      $sql=mysql_query("select * from `tb_student_score` where `sid` in (select `sid` from `tb_student_score` where `sid` between $from and $to) ",$conn);
      2、查询记录信息:
$sql=mysql_query("select * from `tb_bookinfo` where `bookname` in (select `bookname` from `tb_bookinfo` where `bookname` like '%$bookname%') ",$conn);

排序分组
一、对数据进行降序查询:
      $sql=mysql_query("select * from `tb_sp` order by `sl` desc",$conn);
二、对数据进行多条件排序查询:
      $sql=mysql_query("select * from `tb_goods` order by `sl` desc,dj asc",$conn); 
三、对统计结果进行排序:
$sql=mysql_query("select *,sum(num) as totalnum from `tb_bookinfo` group by `bookname` order by `totalnum` desc",$conn); 
四、单列数据分组统计:
  $sql=mysql_query("select *,sum(num) as totalnum from `tb_bookinfo` group by `bookname` order by `totalnum` desc",$conn); 
五、多列数据分组统计:
  $sql=mysql_query("select *,sum(xcsl) as xc,sum(x ssl) as xs from `tb_book1` group by `bookname` ",$conn); 
六、多表分组统计:
  $sql=mysql_query("select *,sum(tb_xs.x ssl) as xsl,sum(tb_) as kcl from `tb_bk`,`tb_xs` where tb_=tb_ group by `bookname` ",$conn);

聚集函数
一、汇总统计查询:
       $sql=mysql_query("select sum(yy) as sumyy,sum(yw) as sumyw,sum(sx) as sumsx,sum(ls) as sumls from `tb_student_score` ",$conn);  
二、均值统计查询:
$sql=mysql_query("select avg(yy) as avgyy,avg(yw) as avgyw,avg(sx) as avgsx,avg(ls) as avgls from `tb_student_score` ",$conn);  
三、最小值统计查询:
$sql=mysql_query("select * from `tb_gemsell` where `outprice-inprice` in (select min(`outprice-inprice`) as minsell from `tb_gemsell`) ",$conn);  
四、最大值统计查询:
       $sql=mysql_query("select * from `tb_sale` where `sale` in (select max(sale) from `tb_sale` where month(xdate)=$yue and year(xdate)=2005)",$conn);  
五、统计大于某值记录:
       $sql=mysql_query("select count(*) as total from `tb_sale` where `sale`>$num",$conn);

五 PHP数据库函数

1、mysql_connect()-建立数据库连接
格式:
    resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])
例:
    $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server");
说明:使用该连接必须显示的关闭连接

2、mysql_pconnect()-建立数据库连接
格式:
    resource mysql_pconnect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])
例:
    $conn = @mysql_pconnect("localhost", "username", "password") or dir("不能连接到Mysql Server");
说明:使用该连接函数不需要显示的关闭连接,它相当于使用了连接池

3、mysql_close()-关闭数据库连接
例:
    $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server");
    @mysql_select_db("MyDatabase") or die("不能选择这个数据库,或数据库不存在");
    echo "你已经连接到MyDatabase数据库";
    mysql_close();

4、mysql_select_db()-选择数据库
格式:
    boolean mysql_select_db(string db_name [, resource link_id])
例:
    $conn = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server");
    @mysql_select_db("MyDatabase") or die("不能选择这个数据库,或数据库不存在");

5、mysql_query()-查询MySQL
格式:
    resource mysql_query (string query, [resource link_id])
例:
    $linkId = @mysql_connect("localhost", "username", "password") or die("不能连接到Mysql Server");
    @mysql_select_db("MyDatabase") or die("不能选择这个数据库,或者数据库不存在");
    $query = "select * from MyTable";
    $result = mysql_query($query);
    mysql_close();
说明:若SQL查询执行成功,则返回资源标识符,失败时返回FALSE。若执行更新成功,则返回TRUE,否则返回FALSE

6、mysql_db_query()-查询MySQL
格式:
    resource mysql_db_query(string database, string query [, resource link_id])
例:
    $linkId = @mysql_connect("localhost", "username", "password") or die("不能连接到MysqlServer");
    $query = "select * from MyTable";
    $result = mysql_db_query("MyDatabase", $query);
    mysql_close();
说明:为了使代码清晰,不推荐使用这个函数调用

7、mysql_result()-获取和显示数据
格式:
    mixed mysql_result (resource result_set, int row [, mixed field])
例:
    $query = "select id, name from MyTable order by name";
    $result = mysql_query($query);
    for($count=0;$count<=mysql_numrows($result);$count++)
    {
        $c_id = mysql_result($result, 0, "id");
        $c_name = mysql_result($result, 0, "name");
        echo $c_id,$c_name;
    }
说明:最简单、也是效率最低的数据获取函数

8、mysql_fetch_row()-获取和显示数据
格式:
    array mysql_fetch_row (resource result_set)
例:
    $query = "select id, name from MyTable order by name";
    $result = mysql_query($query);
    while (list($id, $name) = mysql_fetch_row($result)) {
        echo("Name: $name ($id) <br />");
    } 
说明:函数从result_set中获取整个数据行,将值放在一个索引数组中。通常会结使list()函数使用

9、mysql_fetch_array()-获取和显示数据
格式:
    array mysql_fetch_array (resource result_set [, int result_type])
例:
    $query = "select id, name from MyTable order by name";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $id = $row["id"];
        $name = $row["name"];
        echo "Name: $name ($id) <br />";
    }
又例:
    $query = "select id, name from MyTable order by name";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result, MYSQL_NUM)) {
        $id = $row[0];
        $name = $row[1];
        echo "Name: $name ($id) <br />";
    }
说明:
result_type的值有:
MYSQL_ASSOC: 字段名表示键,字段内容为值
MYSQL_NUM: 数值索引数组,操作与mysql_fetch_ros()函数一样
MYSQL_BOTH: 即作为关联数组又作为数值索引数组返回。result_type的默认值。

10、mysql_fetch_assoc()-获取和显示数据
格式:
    array mysql_fetch_assoc (resource result_set)
相当于调用 mysql_fetch_array(resource, MYSQL_ASSOC);

11、mysql_fetch_object()-获取和显示数据
格式:
    object mysql_fetch_object(resource result_set)
例:
    $query = "select id, name from MyTable order by name";
    while ($row = mysql_fetch_object($result)) {
        $id = $row->id;
        $name = $row->name;
        echo "Name: $name ($id) <br />";
    }
说明:返回一个对象,在操作上与mysql_fetch_array()相同

12、mysql_num_rows()-所选择的记录的个数
格式:
    int mysql_num_rows(resource result_set)
例:
    query = "select id, name from MyTable where id > 65";
    $result = mysql_query($query);
    echo "有".mysql_num_rows($result)."条记录的ID大于65";
说明:只在确定select查询所获取的记录数时才有用。

13、mysql_affected_rows()-受Insert,update,delete影响的记录的个数
格式:
    int mysql_affected_rows([resource link_id])
例:
    $query = "update MyTable set name='CheneyFu' where id>=5";
    $result = mysql_query($query);
    echo "ID大于等于5的名称被更新了的记录数:".mysql_affected_rows();
说明:该函数获取受INSERT,UPDATE或DELETE更新语句影响的行数

14、mysql_list_dbs()-获取数据库列表信息
格式:
    resource mysql_list_dbs([resource link_id])
例:
    mysql_connect("localhost", "username", "password");
    $dbs = mysql_list_dbs();
    echo "Databases: <br />";
    while (list($db) = mysql_fetch_rows($dbs)) {
        echo "$db <br />";
    }
说明:显示所有数据库名称

15、mysql_db_name()-获取数据库名
格式:
    string mysql_db_name(resource result_set, integer index) 
说明:该函数获取在mysql_list_dbs()所返回result_set中位于指定index索引的数据库名

16、mysql_list_tables()-获取数据库表列表
格式:
    resource mysql_list_tables(string database [, resource link_id])
例:
    mysql_connect("localhost", "username", "password");
    $tables = mysql_list_tables("MyDatabase");
    while (list($table) = mysql_fetch_row($tables)) {
        echo "$table <br />";
    } 
说明:该函数获取database中所有表的表名

17、mysql_tablename()-获取某个数据库表名
格式:
    string mysql_tablename(resource result_set, integer index)
例:
    mysql_connect("localhost", "username", "password");
    $tables = mysql_list_tables("MyDatabase");
    $count = -1;
    while (++$count < mysql_numrows($tables)) {
        echo mysql_tablename($tables, $count)."<br />";
    }
说明:该函数获取mysql_list_tables()所返回result_set中位于指定index索引的表名

18、mysql_fetch_field()-获取字段信息
格式:
    object mysql_fetch_field(resource result [, int field_offset])
例:
    mysql_connect("localhost", "username", "password");
    mysql_select_db("MyDatabase");
    $query = "select * from MyTable";
    $result = mysql_query($query);
    $counts = mysql_num_fields($result);
    for($count = 0; $count < $counts; $count++) {
       $field = mysql_fetch_field($result, $count);
       echo "<p>$field->name $field->type ($field->max_length) </p>";
    } 
说明:
返回的对象共有12个对象属性:
name: 字段名
table: 字段所在的表
max_length:字段的最大长度
not_null: 如果字段不能为null,则为1,否则0
primary_key: 如果字段为主键,则为1,否则0
unique_key: 如果字段是唯一键,则为1, 否则0
multiple_key: 如果字段为非唯一,则为1,否则0
numeric: 如果字段为数值则为1,否则0
blob: 如果字段为BLOB则为1,否则为0
type: 字段的数据类型
unsigned: 如果字段为无符号数则为1,否则为0
zerofill: 如果字段为“零填充”则为1, 否则为0

19、mysql_num_fields()-获取查询的字段个数
格式:
    integer mysql_num_fields(resource result_set)
例:
    $query = "select id,name from MyTable order by name";
    $result = mysql_query($query);
    echo "这个查询的字段数是:".mysql_num_fields($result)."<br />";

20、mysql_list_fields()-获取指定表的所有字段的字段名
格式:
    resource mysql_list_fields (string database_name, string table_name [, resource link_id])
例:
    $fields =mysql_list_fields("MyDatabase", "MyTable");
    echo "数据库MyDatabase中表MyTable的字段数: ".mysql_num_fields($fields)."<br />";

21、mysql_field_flags()-获取指定的字段选项
格式:
    string mysql_field_flags (resource result_set, integer field_offset)
例:
    $query = "select id, name from MyTable order by name";
    $result = mysql_query($query);
    $row=mysql_fetch_wor($row);

22、mysql_field_len()-获取指定的字段的最大长度
格式:
    integer mysql_field_len (resource result_set, integer field_offset)
例:
    $query = "select name from MyTable";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);
    echo mysql_field_len($result, 0)."<br />"; 
说明:
如果mysql_field_len($reseult, 0) = 16777215
那么numer_format(mysql_field_len($result))等于16,777,215

23、mysql_field_name()-获取字段名
格式:
    string mysql_field_name (resource result_set, int field_offset)
例:
    $query = "select id as PKID, name from MyTable order by name";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);
    echo mysql_field_name($result, 0); // Result: PKID

24、mysql_field_type()-获取字段类型
格式:
    string mysql_field_type (resource result_set, int field_offset)
例:
    $query = "select id, name from MyTable order by name";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);
    echo mysql_field_type($result, 0); // Result: int

25、mysql_field_table()-获取字段所在表名
格式:
    string mysql_field_table (resource result_set, int field_offset)
例:
    $query = "select id as PKID, name from MyTable order by name";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);
    echo mysql_field_table($result, 0); // Result: MyTable

php 常用的更多相关文章

  1. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  2. 分布式锁1 Java常用技术方案

    前言:       由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题.所以自己结合实际工作中的一些经验和网上看到的一些资 ...

  3. Visaul Studio 常用快捷键的动画演示

    从本篇文章开始,我将会陆续介绍提高 VS 开发效率的文章,欢迎大家补充~ 在进行代码开发的时候,我们往往会频繁的使用键盘.鼠标进行协作,但是切换使用两种工具会影响到我们的开发速度,如果所有的操作都可以 ...

  4. sublime常用快捷键

    自己觉得比较实用的sublime快捷键: Ctrl + /  ---------------------注释 Ctrl + 滚动 --------------字体变大/缩小 Ctrl + N----- ...

  5. SQL Server 常用内置函数(built-in)持续整理

    本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的 ...

  6. 探索ASP.NET MVC5系列之~~~4.模型篇---包含模型常用特性和过度提交防御

    其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...

  7. React在开发中的常用结构以及功能详解

    一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...

  8. 【原】实时渲染中常用的几种Rendering Path

    [原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...

  9. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  10. HTTP常用状态码分析

    不管是面试还是工作中,经常会碰到需要通过HTTP状态码去判断问题的情况,比如对于后台RD,给到前端FE的一个接口,出现502或者504 error错误,FE就会说接口存在问题,如果没有知识储备,那就只 ...

随机推荐

  1. Notepad++强大的代码补全和代码提示功能的方法

    最近写项目,经常要打开一些文件去修改一些代码段.那么我的项目都是使用ied大型编辑器去写的,每次修改文件,哪怕是一个标点都要用一分钟时间去打开软件.当然,后来我也考虑到使用记事本,但总感觉不是很爽. ...

  2. [转]将某个Qt4项目升级到Qt5遇到的问题

    原文:http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87晚上花了4个小时,将以前的一个项目从Qt 4.8.4-MinGW升级到了Qt5. ...

  3. 【MongoDB】The Access control of mongodb

    In this blog we mainly talk about the access control including limitation of ip, setting listen port ...

  4. John(博弈)

    Description Little John is playing very funny game with his  younger brother. There  is one big box ...

  5. BZOJ 2754([SCOI2012]喵喵叫的星球-统计序列的后缀阵列中子序列出现次数)

    2754: [SCOI2012]喵喵叫的星球 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 805  Solved: 380 [id=2754&qu ...

  6. 监听器 listener 样例

    1. 在web.xml 添加 <listener>    <listener-class>listener.TestListener</listener-class> ...

  7. kindle

    http://www.mindmap8.com/Kindle_Paperwhite/20130726266.html http://blog.csdn.net/felomeng/article/det ...

  8. Linux 精准获取进程pid--转

    如果想在脚本里只获取PID,那么可以用如下脚本.目前收集两种方法: 方法一 $ps x|grep xxx  |awk '{print $1}' e.g. ps x|grep java |awk '{p ...

  9. WPF仿微软事件和属性窗体,效果更炫!

    先看效果图:包含系统颜色.系统字体.支持自定义编辑窗体.集合绑定.提供多类型支持. 这是国外网站上无意中看到的,修改了下   感觉还不错!接下来大概介绍下 经过修修改改只留下了有用的主要部分: 前两项 ...

  10. android 6.0获取 WRITE_SETTINGS 权限

    android 6.0上只写在AndroidManifest中是不行的,还必须手动打开才行 private void setBrightnessMode(Context context, int mo ...