php常用函数总结
PHP String 函数 PHP:指示支持该函数的最早的 PHP 版本。 函数 描述 PHP addcslashes() 在指定的字符前添加反斜杠。 4 addslashes() 在指定的预定义字符前添加反斜杠。 3 bin2hex() 把 ASCII 字符的字符串转换为十六进制值。 3 chop() rtrim() 的别名。 3 chr() 从指定的 ASCII 值返回字符。 3 chunk_split() 把字符串分割为一连串更小的部分。 3 convert_cyr_string() 把字符由一种 Cyrillic 字符转换成另一种。 3 convert_uudecode() 对 uuencode 编码的字符串进行解码。 5 convert_uuencode() 使用 uuencode 算法对字符串进行编码。 5 count_chars() 返回字符串所用字符的信息。 4 crc32() 计算一个字符串的 32-bit CRC。 4 crypt() 单向的字符串加密法 (hashing)。 3 echo() 输出字符串。 3 explode() 把字符串打散为数组。 3 fprintf() 把格式化的字符串写到指定的输出流。 5 get_html_translation_table() 返回翻译表。 4 hebrev() 把希伯来文本从右至左的流转换为左至右的流。 3 hebrevc() 同上,同时把(/n) 转为 <br />。 3 html_entity_decode() 把 HTML 实体转换为字符。 4 htmlentities() 把字符转换为 HTML 实体。 3 htmlspecialchars_decode() 把一些预定义的 HTML 实体转换为字符。 5 htmlspecialchars() 把一些预定义的字符转换为 HTML 实体。 3 implode() 把数组元素组合为一个字符串。 3 join() implode() 的别名。 3 levenshtein() 返回两个字符串之间的 Levenshtein 距离。 3 localeconv() 返回包含本地数字及货币信息格式的数组。 4 ltrim() 从字符串左侧删除空格或其他预定义字符。 3 md5() 计算字符串的 MD5 散列。 3 md5_file() 计算文件的 MD5 散列。 4 metaphone() 计算字符串的 metaphone 键。 4 money_format() 把字符串格式化为货币字符串。 4 nl_langinfo() 返回指定的本地信息。 4 nl2br() 在字符串中的每个新行之前插入 HTML 换行符。 3 number_format() 通过千位分组来格式化数字。 3 ord() 返回字符串第一个字符的 ASCII 值。 3 parse_str() 把查询字符串解析到变量中。 3 print() 输出一个或多个字符串。 3 printf() 输出格式化的字符串。 3 quoted_printable_decode() 解码 quoted-printable 字符串。 3 quotemeta() 在字符串中某些预定义的字符前添加反斜杠。 3 rtrim() 从字符串的末端开始删除空白字符或其他预定义字符。 3 setlocale() 设置地区信息(地域信息)。 3 sha1() 计算字符串的 SHA-1 散列。 4 sha1_file() 计算文件的 SHA-1 散列。 4 similar_text() 计算两个字符串的匹配字符的数目。 3 soundex() 计算字符串的 soundex 键。 3 sprintf() 把格式化的字符串写写入一个变量中。 3 sscanf() 根据指定的格式解析来自一个字符串的输入。 4 str_ireplace() 替换字符串中的一些字符。(对大小写不敏感) 5 str_pad() 把字符串填充为新的长度。 4 str_repeat() 把字符串重复指定的次数。 4 str_replace() 替换字符串中的一些字符。(对大小写敏感) 3 str_rot13() 对字符串执行 ROT13 编码。 4 str_shuffle() 随机地打乱字符串中的所有字符。 4 str_split() 把字符串分割到数组中。 5 str_word_count() 计算字符串中的单词数。 4 strcasecmp() 比较两个字符串。(对大小写不敏感) 3 strchr() 搜索字符串在另一字符串中的第一次出现。strstr() 的别名 3 strcmp() 比较两个字符串。(对大小写敏感) 3 strcoll() 比较两个字符串(根据本地设置)。 4 strcspn() 返回在找到任何指定的字符之前,在字符串查找的字符数。 3 strip_tags() 剥去 HTML、XML 以及 PHP 的标签。 3 stripcslashes() 删除由 addcslashes() 函数添加的反斜杠。 4 stripslashes() 删除由 addslashes() 函数添加的反斜杠。 3 stripos() 返回字符串在另一字符串中第一次出现的位置(大小写不敏感) 5 stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感) 3 strlen() 返回字符串的长度。 3 strnatcasecmp() 使用一种“自然”算法来比较两个字符串(对大小写不敏感) 4 strnatcmp() 使用一种“自然”算法来比较两个字符串(对大小写敏感) 4 strncasecmp() 前 n 个字符的字符串比较(对大小写不敏感)。 4 strncmp() 前 n 个字符的字符串比较(对大小写敏感)。 4 strpbrk() 在字符串中搜索指定字符中的任意一个。 5 strpos() 返回字符串在另一字符串中首次出现的位置(对大小写敏感) 3 strrchr() 查找字符串在另一个字符串中最后一次出现的位置。 3 strrev() 反转字符串。 3 strripos() 查找字符串在另一字符串中最后出现的位置(对大小写不敏感) 5 strrpos() 查找字符串在另一字符串中最后出现的位置(对大小写敏感) 3 strspn() 返回在字符串中包含的特定字符的数目。 3 strstr() 搜索字符串在另一字符串中的首次出现(对大小写敏感) 3 strtok() 把字符串分割为更小的字符串。 3 strtolower() 把字符串转换为小写。 3 strtoupper() 把字符串转换为大写。 3 strtr() 转换字符串中特定的字符。 3 substr() 返回字符串的一部分。 3 substr_compare() 从指定的开始长度比较两个字符串。 5 substr_count() 计算子串在字符串中出现的次数。 4 substr_replace() 把字符串的一部分替换为另一个字符串。 4 trim() 从字符串的两端删除空白字符和其他预定义字符。 3 ucfirst() 把字符串中的首字符转换为大写。 3 ucwords() 把字符串中每个单词的首字符转换为大写。 3 vfprintf() 把格式化的字符串写到指定的输出流。 5 vprintf() 输出格式化的字符串。 4 vsprintf() 把格式化字符串写入变量中。 4 wordwrap() 按照指定长度对字符串进行折行处理。 4
PHP Array 函数 PHP:指示支持该函数的最早的 PHP 版本。 函数 描述 PHP array() 创建数组。 3 array_change_key_case() 返回其键均为大写或小写的数组。 4 array_chunk() 把一个数组分割为新的数组块。 4 array_combine() 通过合并两个数组来创建一个新数组。 5 array_count_values() 用于统计数组中所有值出现的次数。 4 array_diff() 返回两个数组的差集数组。 4 array_diff_assoc() 比较键名和键值,并返回两个数组的差集数组。 4 array_diff_key() 比较键名,并返回两个数组的差集数组。 5 array_diff_uassoc() 通过用户提供的回调函数做索引检查来计算数组的差集。 5 array_diff_ukey() 用回调函数对键名比较计算数组的差集。 5 array_fill() 用给定的值填充数组。 4 array_filter() 用回调函数过滤数组中的元素。 4 array_flip() 交换数组中的键和值。 4 array_intersect() 计算数组的交集。 4 array_intersect_assoc() 比较键名和键值,并返回两个数组的交集数组。 4 array_intersect_key() 使用键名比较计算数组的交集。 5 array_intersect_uassoc() 带索引检查计算数组的交集,用回调函数比较索引。 5 array_intersect_ukey() 用回调函数比较键名来计算数组的交集。 5 array_key_exists() 检查给定的键名或索引是否存在于数组中。 4 array_keys() 返回数组中所有的键名。 4 array_map() 将回调函数作用到给定数组的单元上。 4 array_merge() 把一个或多个数组合并为一个数组。 4 array_merge_recursive() 递归地合并一个或多个数组。 4 array_multisort() 对多个数组或多维数组进行排序。 4 array_pad() 用值将数组填补到指定长度。 4 array_pop() 将数组最后一个单元弹出(出栈)。 4 array_product() 计算数组中所有值的乘积。 5 array_push() 将一个或多个单元(元素)压入数组的末尾(入栈)。 4 array_rand() 从数组中随机选出一个或多个元素,并返回。 4 array_reduce() 用回调函数迭代地将数组简化为单一的值。 4 array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。 4 array_search() 在数组中搜索给定的值,如果成功则返回相应的键名。 4 array_shift() 删除数组中的第一个元素,并返回被删除元素的值。 4 array_slice() 在数组中根据条件取出一段值,并返回。 4 array_splice() 把数组中的一部分去掉并用其它值取代。 4 array_sum() 计算数组中所有值的和。 4 array_udiff() 用回调函数比较数据来计算数组的差集。 5 array_udiff_assoc() 带索引检查计算数组的差集,用回调函数比较数据。 5 array_udiff_uassoc() 带索引检查计算数组的差集,用回调函数比较数据和索引。 5 array_uintersect() 计算数组的交集,用回调函数比较数据。 5 array_uintersect_assoc() 带索引检查计算数组的交集,用回调函数比较数据。 5 array_uintersect_uassoc() 带索引检查计算数组的交集,用回调函数比较数据和索引。 5 array_unique() 删除数组中重复的值。 4 array_unshift() 在数组开头插入一个或多个元素。 4 array_values() 返回数组中所有的值。 4 array_walk() 对数组中的每个成员应用用户函数。 3 array_walk_recursive() 对数组中的每个成员递归地应用用户函数。 5 arsort() 对数组进行逆向排序并保持索引关系。 3 asort() 对数组进行排序并保持索引关系。 3 compact() 建立一个数组,包括变量名和它们的值。 4 count() 计算数组中的元素数目或对象中的属性个数。 3 current() 返回数组中的当前元素。 3 each() 返回数组中当前的键/值对并将数组指针向前移动一步。 3 end() 将数组的内部指针指向最后一个元素。 3 extract() 从数组中将变量导入到当前的符号表。 3 in_array() 检查数组中是否存在指定的值。 4 key() 从关联数组中取得键名。 3 krsort() 对数组按照键名逆向排序。 3 ksort() 对数组按照键名排序。 3 list() 把数组中的值赋给一些变量。 3 natcasesort() 用“自然排序”算法对数组进行不区分大小写字母的排序。 4 natsort() 用“自然排序”算法对数组排序。 4 next() 将数组中的内部指针向前移动一位。 3 pos() current() 的别名。 3 prev() 将数组的内部指针倒回一位。 3 range() 建立一个包含指定范围的元素的数组。 3 reset() 将数组的内部指针指向第一个元素。 3 rsort() 对数组逆向排序。 3 shuffle() 把数组中的元素按随机顺序重新排列。 3 sizeof() count() 的别名。 3 sort() 对数组排序。 3 uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联。 3 uksort() 使用用户自定义的比较函数对数组中的键名进行排序。 3 usort() 使用用户自定义的比较函数对数组中的值进行排序。 3
PHP Math 函数 PHP:指示支持该函数的最早的 PHP 版本。 函数 描述 PHP abs() 绝对值。 3 acos() 反余弦。 3 acosh() 反双曲余弦。 4 asin() 反正弦。 3 asinh() 反双曲正弦。 4 atan() 反正切。 3 atan2() 两个参数的反正切。 3 atanh() 反双曲正切。 4 base_convert() 在任意进制之间转换数字。 3 bindec() 把二进制转换为十进制。 3 ceil() 向上舍入为最接近的整数。 3 cos() 余弦。 3 cosh() 双曲余弦。 4 decbin() 把十进制转换为二进制。 3 dechex() 把十进制转换为十六进制。 3 decoct() 把十进制转换为八进制。 3 deg2rad() 将角度转换为弧度。 3 exp() 返回 Ex 的值。 3 expm1() 返回 Ex - 1 的值。 4 floor() 向下舍入为最接近的整数。 3 fmod() 返回除法的浮点数余数。 4 getrandmax() 显示随机数最大的可能值。 3 hexdec() 把十六进制转换为十进制。 3 hypot() 计算直角三角形的斜边长度。 4 is_finite() 判断是否为有限值。 4 is_infinite() 判断是否为无限值。 4 is_nan() 判断是否为合法数值。 4 lcg_value() 返回范围为 (0, 1) 的一个伪随机数。 4 log() 自然对数。 3 log10() 以 10 为底的对数。 3 log1p() 返回 log(1 + number)。 4 max() 返回最大值。 3 min() 返回最小值。 3 mt_getrandmax() 显示随机数的最大可能值。 3 mt_rand() 使用 Mersenne Twister 算法返回随机整数。 3 mt_srand() 播种 Mersenne Twister 随机数生成器。 3 octdec() 把八进制转换为十进制。 3 pi() 返回圆周率的值。 3 pow() 返回 x 的 y 次方。 3 rad2deg() 把弧度数转换为角度数。 3 rand() 返回随机整数。 3 round() 对浮点数进行四舍五入。 3 si
<?php //===============================时间日期=============================== //y返回年最后两位,Y年四位数,m月份数字,M月份英文。d月份几号数字,D星期几英文 $date=date("Y-m-d");
//include,include_once.require,require_once //require("file.php") 在PHP程序执行前就会先读入require所指定引进的文件,如出现错误是致命的。 //include("file.php") 可以放在PHP程序的任何位置,PHP程序执行到时才读入include指定引入的文件,如出现错误会提示
//===============================输出打印=============================== //sprintf("%d","3.2") ;//只格式化,返回格式化后的字符串,不输出。 //printf("%d","3.2") ;//即格式化,又输出 //print("3.2") ;//只输出 //echo "nihao","aa";//可以输出多个字符串 //print_r(array("a","b","c"));//将数组的键值与元素依次显示
//===============================常用字符串函数===============================
//获取字符串长度,有多少个字符,空格也算 $str=" sdaf sd "; $len=strlen($str);
//用第一个参数里的字符串,把后面数组里的每个元素连接起来,返回一个字符串。 $str=implode("-",array("a","b","c"));
//字符串分割方法,返回一个数组,用第一个参数里的字符分割后面的字符串,指定字符的前后和之间都截取,如果指定字符在开头或结尾则返回的数组开头或结尾的元素为空字符串 //没有分割到字符串就返回给数组对应元素一个空值。最后一个限制返回数组长度,可不限制,则一直分割下去。 $array=explode("a","asddad addsadassd dasdadfsdfasdaaa",4); //print_r($array);
//剔除字符串左边开头的空格,并返回 //如有第二个参数则是剔除左边开头的空格换成剔除第二个参数里的字符串 $str=ltrim("a asd ","a");
//剔除字符串右边开头的空格 $str=rtrim(" asd ");
//把第一个字符串两边以第二个参数开头的字符串剔除。如没有第二个参数,默认剔除掉字符串两边开头的空格 $str=trim(" sdsdfas ","a");
//从字符串第一个参数里的指定位置开始取多长(多少个)字符,字符串中第一个字符位置从0算。 //如果第二个参数为负则从字符串结尾倒数第几个开始取多长的字符串。结尾最后一个字符算-1,截取方向总是从左到右 $str=substr("abcdefgh",0,4);
//将第三个参数的第一个参数字符串用参数二字符串替换 $str=str_replace("a","","abcabcAbca"); //与str_replace用法同,只是不区分大小写 //$str=str_ireplace("a"," ","abcabcAbca");
//返回括号里字符串的字符全部大写的字符串 $str=strtoupper("sdaf");
//将括号里第一个字符串变成大写后返回 $str=ucfirst("asdf");
//用echo等将括号里字符串打印在网页上时原汁原味打印出括号里的字符串,包括标签字符 $str=htmlentities("<br/>");
//返回第二个参数字符串在第一个字符串里出现的次数 $int=substr_count("abcdeabcdeablkabd","ab");
//返回第二个字符串在第一个字符串第一次出现的位置,第一个字符位置算0 $int=strpos("asagaab","ab");
//返回第二个字符串在第一个字符串最后一次出现的位置,第一个字符位置算0 $int=strrpos("asagaabadfab","ab");
//截取返回参数一中从左至右第一个出现的参数二到参数一最后一个字符的字符串 $str=strstr("sdafsdgaababdsfgs","ab");
//截取返回参数一中从左至右最后一个出现的参数二到参数一最后一个字符的字符串 $str=strrchr("sdafsdgaababdsfgs","ab");
//将参数二中每一个字符在参数一中相同字符前加"\" $str=addcslashes("abcdefghijklmn","akd");
//将参数一的字符串填充到参数二指定的长度(单字符个数),参数三为指定填充的字符串,不写默认空格 //参数四填充位置,0在参数一左侧开头填充,1右侧开头,2两边开头同时。不写默认在右侧开头填充 $str=str_pad("abcdefgh",10,"at",0);
//依次比较两字符串对应字符阿斯克码值,第一对不一样的,如果参数一里大于参数二里的返回1,反之返回-1,两字符串完全一样返回0 $int1=strcmp("b","a");
//返回第一个参数格式化后的数字格式,第二个参数为保留几个小数,参数三为将小数点换成参数三,参数四为整数部分每三位用什么字符分割 //后面三个参数都不写,则默认去掉小数部分,整数每隔三位用逗号,分割。参数三,参数四必须同时存在 $str=number_format(1231233.1415,2,"d","a");
//===============================常用数组方法===============================
$arr=array("k0"=>"a","k1"=>"b","k2"=>"c");
//返回数组元素个数 $int=count($arr);
//判断第二参数的数组元素中是否有第一个参数元素 $bool=in_array("b",$arr);
//返回括号中数组所有键值组成的新数组原数组不改变 $array=array_keys($arr);
//判断第二个参数的数组中是否有第一个参数的键值,返回真假 $bool=array_key_exists("k1",$arr);
//返回原数组中所有元素值组成的新数组,键值从0开始自增,原数组不变 $array=array_values($arr);
//返回当前数组指针指向的键值 $key=key($arr);
//返回当前数组指针指向的元素值 $value=current($arr);
//返回当前数组指针指向元素的键值及元素值组成的数组,再将指针推向下一位,最后指针指向的是一个空元素返回空 //返回的数组中有四个固定键值对应的元素值分别是返回元素的键值及元素值,其中0,'key'键值都对应返回元素键值,1,'value'键值都对应返回的元素值 $array=each($arr);
//先将数组指针推向下一位,再返回指针移动后指向的元素值 $value=next($arr);
//将数组指针推向上一位,再返回指针移动后指向的元素值 $value=prev($arr);
//让数组指针重置指向第一个元素并返回元素值 $value=reset($arr);
//将数组指针指向最后一位元素,并返回最后一位元素值 $value=end($arr);
//将第一个参数以后的参数作为元素追加入第一个参数数组的末尾,索引从最小的没用过的数值开始计,返回之后的数组长度 $int=array_push($arr,"d","dfsd");
//将第一个参数数组后面所有参数作为元素添加到第一个参数数组开头处,键值以0从第一个元素处重新累加,原非数值的键值保持不变,原元素排序位置不变,返回之后的数组长度 $int=array_unshift($arr,"t1","t2");
//返回从数组尾部提取最后一个元素值,并把最后一个元素从原数组中剔除 $value=array_pop($arr);
//array_pop相反,提取返回数组头一个元素值,并把头一个元素从原数组中剔除 $value=array_shift($arr);
//让第一个参数数组达到第二个参数数值长度,将第三个参数作为元素添加到第一个参数数组的末尾,索引从最小没用过数值开始计并返回,原数组不改变 $array1=array_pad($arr,10,"t10");
//返回一个将原数组中多余重复元素剔除掉的新数组,原数组不改变 $array=array_unique($array1);
//将原数组键值打破重新以元素值的阿斯克码值从小到大排序,索引从数字0开始重计 $int=sort($array);
//和sort相反,以元素值阿斯柯码值大小降序重新排序,索引从0重新计 $int=rsort($array);
//返回将第一个参数数组中每一个元素值依次作为键值付给参数二数组的数组,两数组长度必须一致,原数组不改变 $array=array_combine(array("a","b","c","d","e"),$arr);
//将两个数组合并并返回原数组不变 $array=array_merge($arr,array("a","b","c"));
//在第一个参数数组中从第二个参数数值位置开始截取到第三个参数数值长度的数组键值+元素并返回,数组第一个元素位置从0计 $array=array_slice($arr,2,1);
//截取功能和array_slice()一样,只是将截取部分在原数组中剔除 $array=array_splice($arr,2,1);
//将第一个参数作为第一个元素,每次自增参数三的值,自增后再作为一个元素存在数组中,直到值达到参数二的值存到数组中为止并返回这个数组 //参数一,参数二可以是数字,可以是单个字符,单字符就按阿斯柯码值算,第三个参数不写默认每次自增1 $array=range(3,9,2);
//将原数组元素与对应键值的对应关系重新随机排列返回真假 $bool=shuffle($arr);
//计算数组中所有数值型元素值的和 $int=array_sum(array("a",2,"cssf"));
//把一个数组分割为新的数组块,新数组每个元素都是一个数组,新数组每个元素内有几个元素由参数二决定 //第三个参数决定元素的键值是否保留原键值可不写,true为保留,默认false不保留 $array=array_chunk(array("a"=>"a","b","c","d","e","f","g","h"),2,true); ?>
PHP中的MYSQL常用函数
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
一、数组操作的基本函数
数组的键名和值
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]): 检索给定的键名是否存在数组中
数组的内部指针
current($arr); 返回数组中的当前单元
pos($arr); 返回数组中的当前单元
key($arr); 返回数组中当前单元的键名
prev($arr); 将数组中的内部指针倒回一位
next($arr); 将数组中的内部指针向前移动一位
end($arr); 将数组中的内部指针指向最后一个单元
reset($arr; 将数组中的内部指针指向第一个单元
each($arr); 将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr); 获得数组当前元素的键名和值
数组和变量之间的转换
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组
二、数组的分段和填充
数组的分段
array_slice($arr,0,3); 可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array("black","maroon")); 可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除
分割多个数组
array_chunk($arr,3,TRUE); 可以将一个数组分割成多个,TRUE为保留原数组的键名
数组的填充
array_pad($arr,5,'x'); 将一个数组填补到制定长度
三、数组与栈
array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr); 将数组栈的最后一个元素弹出(出栈)
四、数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素
五、回调函数
array_walk($arr,'function','words'); 使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa("function",$arr1,$arr2); 可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
array_filter($arr,"function"); 使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变
array_reduce($arr,"function","*"); 转化为单值函数(*为数组的第一个值)
六、数组的排序
通过元素值对数组排序
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); 自然排序(忽略大小写,忽略键名)
七、数组的计算
数组元素的求和
array_sum($arr); 对数组内部的所有元素做求和运算
数组的合并
array_merge($arr1,$arr2); 合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2; 对于相同的键名只保留后一个
array_merge_recursive($arr1,$arr2); 递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组 具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面
数组的差集
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); 将数组的顺序打乱
内容:
<?
function GetIP() { //获取IP
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if ($_SERVER["HTTP_CLIENT_IP"])
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if ($_SERVER["REMOTE_ADDR"])
$ip = $_SERVER["REMOTE_ADDR"];
else if (getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else
$ip = "Unknown";
return $ip;
}
?>
详细出处参考:http://www.jb51.net/article/22199.htm
<?php
function DateAdd($date, $int, $unit = "d") { //时间的增加(还可以改进成时分秒都可以增加,有时间再补上)
$dateArr = explode("-", $date);
$value[$unit] = $int;
return date("Y-m-d", mktime(0,0,0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $dateArr[0] + $value['y']));
}
function GetWeekDay($date) { //计算出给出的日期是星期几
$dateArr = explode("-", $date);
return date("w", mktime(0,0,0,$dateArr[1],$dateArr[2],$dateArr[0]));
}
?>
详细出处参考:http://www.jb51.net/article/22199.htm
<?
function check_date($date) { //检查日期是否合法日期
$dateArr = explode("-", $date);
if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {
return checkdate($dateArr[1],$dateArr[2],$dateArr[0]);
}
return false;
}
function check_time($time) { //检查时间是否合法时间
$timeArr = explode(":", $time);
if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) {
if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($timeArr[2] >= 0 && $timeArr[2] <= 59))
return true;
else
return false;
}
return false;
}
详细出处参考:http://www.jb51.net/article/22199.htm
function DateDiff($date1, $date2, $unit = "") { //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天
switch ($unit) {
case 's':
$dividend = 1;
break;
case 'i':
$dividend = 60;
break;
case 'h':
$dividend = 3600;
break;
case 'd':
$dividend = 86400;
break;
default:
$dividend = 86400;
}
$time1 = strtotime($date1);
$time2 = strtotime($date2);
if ($time1 && $time2)
return (float)($time1 - $time2) / $dividend;
return false;
}
?>
详细出处参考:http://www.jb51.net/article/22199.htm
<?
方法一:header("Location: index.php");
方法二:echo "<scrīpt>window.location ="$PHP_SELF";</scrīpt>";
方法三:echo "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">";
?>
详细出处参考:http://www.jb51.net/article/22199.htm
PHP重定向
复制代码 代码如下:
<?
方法一:header("Location: index.php");
方法二:echo "<scrīpt>window.location ="$PHP_SELF";</scrīpt>";
方法三:echo "<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php">";
?>
获取访问者浏览器
代码如下:
<?
function browse_infor()
{
$browser="";$browserver="";
$Browsers =array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb");
$Agent = $GLOBALS["HTTP_USER_AGENT"];
for ($i=0; $i<=7; $i++)
{
if (strpos($Agent,$Browsers[$i]))
{
$browser = $Browsers[$i];
$browserver ="";
}
}
if (ereg("Mozilla",$Agent) && !ereg("MSIE",$Agent))
{
$temp =explode("(", $Agent); $Part=$temp[0];
$temp =explode("/", $Part); $browserver=$temp[1];
$temp =explode(" ",$browserver); $browserver=$temp[0];
$browserver =preg_replace("/([d.]+)/","1",$browserver);
$browserver = " $browserver";
$browser = "Netscape Navigator";
}
if (ereg("Mozilla",$Agent) && ereg("Opera",$Agent))
{
$temp =explode("(", $Agent); $Part=$temp[1];
$temp =explode(")", $Part); $browserver=$temp[1];
$temp =explode(" ",$browserver);$browserver=$temp[2];
$browserver =preg_replace("/([d.]+)/","1",$browserver);
$browserver = " $browserver";
$browser = "Opera";
}
if (ereg("Mozilla",$Agent) && ereg("MSIE",$Agent))
{
$temp = explode("(", $Agent); $Part=$temp[1];
$temp = explode(";",$Part); $Part=$temp[1];
$temp = explode(" ",$Part);$browserver=$temp[2];
$browserver =preg_replace("/([d.]+)/","1",$browserver);
$browserver = " $browserver";
$browser = "Internet Explorer";
}
if ($browser!="")
{
$browseinfo = "$browser$browserver";
}
else
{
$browseinfo = "Unknown";
}
return $browseinfo;
}
//调用方法$browser=browseinfo() ;直接返回结果
?>
详细出处参考:http://www.jb51.net/article/22199.htm
获取访问者操作系统
复制代码 代码如下:
<?
function osinfo() {
$os="";
$Agent = $GLOBALS["HTTP_USER_AGENT"];
if (eregi('win',$Agent) && strpos($Agent, '95')) {
$os="Windows 95";
}
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
$os="Windows ME";
}
elseif (eregi('win',$Agent) && ereg('98',$Agent)) {
$os="Windows 98";
}
elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {
$os="Windows 2000";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
$os="Windows NT";
}
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {
$os="Windows XP";
}
elseif (eregi('win',$Agent) && ereg('32',$Agent)) {
$os="Windows 32";
}
elseif (eregi('linux',$Agent)) {
$os="Linux";
}
elseif (eregi('unix',$Agent)) {
$os="Unix";
}
elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {
$os="SunOS";
}
elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {
$os="IBM OS/2";
}
elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {
$os="Macintosh";
}
elseif (eregi('PowerPC',$Agent)) {
$os="PowerPC";
}
elseif (eregi('AIX',$Agent)) {
$os="AIX";
}
elseif (eregi('HPUX',$Agent)) {
$os="HPUX";
}
elseif (eregi('NetBSD',$Agent)) {
$os="NetBSD";
}
elseif (eregi('BSD',$Agent)) {
$os="BSD";
}
elseif (ereg('OSF1',$Agent)) {
$os="OSF1";
}
elseif (ereg('IRIX',$Agent)) {
$os="IRIX";
}
elseif (eregi('FreeBSD',$Agent)) {
$os="FreeBSD";
}
if ($os=='') $os = "Unknown";
return $os;
}
//调用方法$os=os_infor() ;
?>
详细出处参考:http://www.jb51.net/article/22199.htm
文件格式类
复制代码 代码如下:
<?
$mime_types = array(
'gif' => 'image/gif',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpe' => 'image/jpeg',
'bmp' => 'image/bmp',
'png' => 'image/png',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'pict' => 'image/x-pict',
'pic' => 'image/x-pict',
'pct' => 'image/x-pict',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'psd' => 'image/x-photoshop',
'swf' => 'application/x-shockwave-flash',
'js' => 'application/x-javascrīpt',
'pdf' => 'application/pdf',
'ps' => 'application/postscrīpt',
'eps' => 'application/postscrīpt',
'ai' => 'application/postscrīpt',
'wmf' => 'application/x-msmetafile',
'css' => 'text/css',
'htm' => 'text/html',
'html' => 'text/html',
'txt' => 'text/plain',
'xml' => 'text/xml',
'wml' => 'text/wml',
'wbmp' => 'image/vnd.wap.wbmp',
'mid' => 'audio/midi',
'wav' => 'audio/wav',
'mp3' => 'audio/mpeg',
'mp2' => 'audio/mpeg',
'avi' => 'video/x-msvideo',
'mpeg' => 'video/mpeg',
'mpg' => 'video/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
'lha' => 'application/x-lha',
'lzh' => 'application/x-lha',
'z' => 'application/x-compress',
'gtar' => 'application/x-gtar',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'tgz' => 'application/x-gzip',
'tar' => 'application/x-tar',
'bz2' => 'application/bzip2',
'zip' => 'application/zip',
'arj' => 'application/x-arj',
'rar' => 'application/x-rar-compressed',
'hqx' => 'application/mac-binhex40',
'sit' => 'application/x-stuffit',
'bin' => 'application/x-macbinary',
'uu' => 'text/x-uuencode',
'uue' => 'text/x-uuencode',
'latex'=> 'application/x-latex',
'ltx' => 'application/x-latex',
'tcl' => 'application/x-tcl',
'pgp' => 'application/pgp',
'asc' => 'application/pgp',
'exe' => 'application/x-msdownload',
'doc' => 'application/msword',
'rtf' => 'application/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
'mdb' => 'application/x-msaccess',
'wri' => 'application/x-mswrite',
);
?>
详细出处参考:http://www.jb51.net/article/22199.htm
php生成excel文档
复制代码 代码如下:
<?
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=test.xls");
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
echo "test1t";
echo "test2tn";
//改动相应文件头就可以输出.doc .xls等文件格式了
?>
详细出处参考:http://www.jb51.net/article/22199.htm
时间比较问题
举一个简单例子说明:比如一个论坛对当天发表的贴子用new图片标记一下。
方法一:
复制代码 代码如下:
<?
//$db->rows[$i][date]中为数据库中datetime字段值.
$today=time();
$theDay=date("Y-m-d H:i:s",$today-24*3600);
$newTag=$db->rows[$i][date]>=$theDay?"<img src='../image/newinfor.gif'>":"";
//方法二:
$newTag=$db->rows[$i][date]>=date("Y-m-d 00:00:00")?"<img src='../image/newinfor.gif'>":"";
?>
复制代码 代码如下:
//提取页面和浏览器提交的变量,作用相当于使PHP.INI开了全局变量
<?
@extract($_SERVER, EXTR_SKIP);
@extract($_SESSION, EXTR_SKIP);
@extract($_POST, EXTR_SKIP);
@extract($_FILES, EXTR_SKIP);
@extract($_GET, EXTR_SKIP);
@extract($_ENV, EXTR_SKIP);
?>
复制代码 代码如下:
//读取文件函数
<?
function readfromfile($file_name) {
if (file_exists($file_name)) {
$filenum=fopen($file_name,"r");
flock($filenum,LOCK_EX);
$file_data=fread($filenum, filesize($file_name));
rewind($filenum);
fclose($filenum);
return $file_data;
}
}
?>
复制代码 代码如下:
//写入文件函数
<?
function writetofile($file_name,$data,$method="w") {
$filenum=fopen($file_name,$method);
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
return $file_data;
}
?>
复制代码 代码如下:
//页面快速转向
<?
function turntopage($url="index.php",$info = "页面转向中...",$second=2){
print "<html>n<head>n<title>页面转向中....</title>n";
print "<meta http-equiv="refresh" content="$second;url=$url">n";
print "<style type="text/css">n<!--n";
print "td { font-family: "Verdana", "Arial";font-size: 12px}n";
print "A {COLOR: #000000; TEXT-DECORATION: none}n";
print "-->n</style>n";
print "</head>n<body>n";
print "<table width="100%" border="0" align="center">n";
print " <tr>n";
print " <td height="200"> </td>n";
print " </tr>n";
print " <tr>n";
print " <td align="center">n";
print " <table width="60%" border="0" cellpadding="8" bgcolor="#AA9FFF">n";
print " <tr>n";
print " <td height="30" align="center">页面转向提示信息</td>n";
print " </tr>n";
print " <tr>n";
print " <td align="center">$info</td>n";
print " </tr>n";
print " <tr>n";
print " <td align="center">n";
print " <a href="$url">如果你的浏览器不支持自动跳转,请按这里</a></td>n";
print " </tr>n";
print " </tr>n";
print " </table></td>n";
print " </tr>n";
print " <tr>n";
print " <td height="200"> </td>n";
print " </tr>n";
print "</table>n";
print "</body>n</html>";
exit;
?>
产生随机字符串函数
复制代码 代码如下:
<?
function random($length) {
$hash = @#@#;
$chars = @#ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz@#;
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i < $length; $i++) {
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
?>
截取一定长度的字符串(该函数对GB2312使用有效)
复制代码 代码如下:
<?
function Wordscut($string, $length ,$sss=0) {
if(strlen($string) > $length) {
if($sss){
$length=$length - 3;
$addstr=@# ...@#;
}
for($i = 0; $i < $length; $i++) {
if(ord($string[$i]) > 127) {
$wordscut .= $string[$i].$string[$i + 1];
$i++;
} else {
$wordscut .= $string[$i];
}
}
return $wordscut.$addstr;
}
return $string;
}
?>
取得客户端IP地址
代码如下:
<?
function GetIP(){
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
$ip = getenv("REMOTE_ADDR");
else if (isset($_SERVER[@#REMOTE_ADDR@#]) && $_SERVER[@#REMOTE_ADDR@#] && strcasecmp($_SERVER[@#REMOTE_ADDR@#], "unknown"))
$ip = $_SERVER[@#REMOTE_ADDR@#];
else
$ip = "unknown";
return($ip);
}
?>
判断邮箱地址
代码如下:
<?
function checkEmail($inAddress)
{
return (ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+",$inAddress));
}
?>
分页(两个函数配合使用)
代码如下:
<?
function getpage($sql,$page_size=20)
{
global $page,$totalpage,$sums; //out param
$page = $_GET["page"];
//$eachpage = $page_size;
$pagesql = strstr($sql," from ");
$pagesql = "select count(*) as ids ".$pagesql;
$result = mysql_query($pagesql);
if($rs = mysql_fetch_array($result)) $sums = $rs[0];
$totalpage = ceil($sums/$page_size);
if((!$page)($page<1)) $page=1;
$startpos = ($page-1)*$page_size;
$sql .=" limit $startpos,$page_size ";
return $sql;
}
function showbar($string="")
{
global $page,$totalpage;
$out="共<font ".$totalpage."color=@#red@#><b>".$totalpage."</b></font>页 ";
$linkNum =4;
$start = ($page-round($linkNum/2))>0 ? ($page-round($linkNum/2)) : "1";
$end = ($page+round($linkNum/2))<$totalpage ? ($page+round($linkNum/2)) : $totalpage;
$prestart=$start-1;
$nextend=$end+1;
if($page<>1)
$out .= "<a href=@#?page=1&&".$string."@#title=第一页>第一页</a> ";
if($start>1)
$out.="<a href=@#?page=".$prestart."@# title=上一页>..<<</a> ";
for($t=$start;$t<=$end;$t++)
{
$out .= ($page==$t) ? "<font [".$t."]color=@#red@#><b>[".$t."]</b></font> " : "<a $thref=@#?page=$t&&".$string."@#>$t</a> ";
}
if($end<$totalpage)
$out.="<a href=@#?page=".$nextend."&&".$string."@# title=下一页>>>..</a>";
if($page<>$totalpage)
$out .= " <a href=@#?page=".$totalpage."&&".$string."@# title=最后页>最后页</a>";
return $out;
}
?>
获取新插入数据的ID
复制代码 代码如下:
<?
mysql_insert_id();
?>
代码如下:
//获得当前的脚本网址
<?
function get_php_url(){
if(!empty($_server["REQUEST_URI"])){
$scriptName = $_SERVER["REQUEST_URI"];
$nowurl = $scriptName;
}else{
$scriptName = $_SERVER["PHP_SELF"];
if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;
else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
}
return $nowurl;
}
?>
代码如下:
//把全角数字转为半角数字
<?
function GetAlabNum($fnum){
$nums = array("0","1","2","3","4","5","6","7","8","9");
$fnums = "0123456789";
for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum);
$fnum = ereg_replace("[^0-9.]|^0{1,}","",$fnum);
if($fnum=="") $fnum=0;
return $fnum;
}
?>
代码如下:
//去除HTML标记
<?
function Text2Html($txt){
$txt = str_replace(" "," ",$txt);
$txt = str_replace("<","<",$txt);
$txt = str_replace(">",">",$txt);
$txt = preg_replace("/[rn]{1,}/isU","
rn",$txt);
return $txt;
}
?>
代码如下:
//相对路径转化成绝对路径
<?
function relative_to_absolute($content, $feed_url) {
preg_match('/(http|https|ftp):///', $feed_url, $protocol);
$server_url = preg_replace("/(http|https|ftp|news):///", "", $feed_url);
$server_url = preg_replace("//.*/", "", $server_url);
if ($server_url == '') {
return $content;
}
if (isset($protocol[0])) {
$new_content = preg_replace('/href="//', 'href="'.$protocol[0].$server_url.'/', $content);
$new_content = preg_replace('/src="//', 'src="'.$protocol[0].$server_url.'/', $new_content);
} else {
$new_content = $content;
}
return $new_content;
}
?>
复制代码 代码如下:
//取得所有链接
<?
function get_all_url($code){
preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr);
return array('name'=>$arr[2],'url'=>$arr[1]);
}
?>
复制代码 代码如下:
//HTML表格的每行转为CSV格式数组
<?
function get_tr_array($table) {
$table = preg_replace("'<td[^>]*?>'si",'"',$table);
$table = str_replace("</td>",'",',$table);
$table = str_replace("</tr>","{tr}",$table);
//去掉 HTML 标记
$table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);
//去掉空白字符
$table = preg_replace("'([rn])[s]+'","",$table);
$table = str_replace(" ","",$table);
$table = str_replace(" ","",$table);
$table = explode(",{tr}",$table);
array_pop($table);
return $table;
}
?>
复制代码 代码如下:
//将HTML表格的每行每列转为数组,采集表格数据
<?
function get_td_array($table) {
$table = preg_replace("'<table[^>]*?>'si","",$table);
$table = preg_replace("'<tr[^>]*?>'si","",$table);
$table = preg_replace("'<td[^>]*?>'si","",$table);
$table = str_replace("</tr>","{tr}",$table);
$table = str_replace("</td>","{td}",$table);
//去掉 HTML 标记
$table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table);
//去掉空白字符
$table = preg_replace("'([rn])[s]+'","",$table);
$table = str_replace(" ","",$table);
$table = str_replace(" ","",$table);
$table = explode('{tr}', $table);
array_pop($table);
foreach ($table as $key=>$tr) {
$td = explode('{td}', $tr);
array_pop($td);
$td_array[] = $td;
}
return $td_array;
}
?>
复制代码 代码如下:
//返回字符串中的所有单词 $distinct=true 去除重复
<?
function split_en_str($str,$distinct=true) {
preg_match_all('/([a-zA-Z]+)/',$str,$match);
if ($distinct == true) {
$match[1] = array_unique($match[1]);
}
sort($match[1]);
return $match[1];
}
?>
复制代码 代码如下:
//打印出为本PHP项目做出贡献的人员的清单
<?
string phpcredits(void)
?>
//获得当前的脚本网址
function get_php_url(){
if(!empty($_SERVER["REQUEST_URI"])){
$scriptName = $_SERVER["REQUEST_URI"];
$nowurl = $scriptName;
}else{
$scriptName = $_SERVER["PHP_SELF"];
if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;
else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
}
return $nowurl;
}
//把全角数字转为半角数字
function GetAlabNum($fnum){
$nums = array("0","1","2","3","4","5","6","7","8","9");
$fnums = "0123456789";
for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum);
$fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum);
if($fnum=="") $fnum=0;
return $fnum;
}
//去除HTML标记
function Text2Html($txt){
$txt = str_replace(" "," ",$txt);
$txt = str_replace("<","<",$txt);
$txt = str_replace(">",">",$txt);
$txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt);
return $txt;
}
//清除HTML标记
function ClearHtml($str){
$str = str_replace('<','<',$str);
$str = str_replace('>','>',$str);
return $str;
}
//相对路径转化成绝对路径
function relative_to_absolute($content, $feed_url) {
preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol);
$server_url = preg_replace("/(http|https|ftp|news):\/\//", "", $feed_url);
$server_url = preg_replace("/\/.*/", "", $server_url);
if ($server_url == '') {
return $content;
}
if (isset($protocol[0])) {
$new_content = preg_replace('/href="\//', 'href="'.$protocol[0].$server_url.'/', $content);
$new_content = preg_replace('/src="\//', 'src="'.$protocol[0].$server_url.'/', $new_content);
} else {
$new_content = $content;
}
return $new_content;
}
//取得所有链接
function get_all_url($code){
preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);
return array('name'=>$arr[2],'url'=>$arr[1]);
}
//获取指定标记中的内容
function get_tag_data($str, $start, $end){
if ( $start == '' || $end == '' ){
return;
}
$str = explode($start, $str);
$str = explode($end, $str[1]);
return $str[0];
}
//HTML表格的每行转为CSV格式数组
function get_tr_array($table) {
$table = preg_replace("'<td[^>]*?>'si",'"',$table);
$table = str_replace("</td>",'",',$table);
$table = str_replace("</tr>","{tr}",$table);
//去掉 HTML 标记
$table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);
//去掉空白字符
$table = preg_replace("'([\r\n])[\s]+'","",$table);
$table = str_replace(" ","",$table);
$table = str_replace(" ","",$table);
$table = explode(",{tr}",$table);
array_pop($table);
return $table;
}
//将HTML表格的每行每列转为数组,采集表格数据
function get_td_array($table) {
$table = preg_replace("'<table[^>]*?>'si","",$table);
$table = preg_replace("'<tr[^>]*?>'si","",$table);
$table = preg_replace("'<td[^>]*?>'si","",$table);
$table = str_replace("</tr>","{tr}",$table);
$table = str_replace("</td>","{td}",$table);
//去掉 HTML 标记
$table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);
//去掉空白字符
$table = preg_replace("'([\r\n])[\s]+'","",$table);
$table = str_replace(" ","",$table);
$table = str_replace(" ","",$table);
$table = explode('{tr}', $table);
array_pop($table);
foreach ($table as $key=>$tr) {
$td = explode('{td}', $tr);
array_pop($td);
$td_array[] = $td;
}
return $td_array;
}
//返回字符串中的所有单词 $distinct=true 去除重复
function split_en_str($str,$distinct=true) {
preg_match_all('/([a-zA-Z]+)/',$str,$match);
if ($distinct == true) {
$match[1] = array_unique($match[1]);
}
sort($match[1]);
return $match[1];
}
//文件读取函式
function PHP_Read($file_name) {
$fd=fopen($file_name,r);
while($bufline=fgets($fd, 4096)){
$buf.=$bufline;
}
fclose($fd);
return $buf;
}
?>
文件写入函式
//文件写入函式
function PHP_Write($file_name,$data,$method="w") {
$filenum=@fopen($file_name,$method);
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
return $file_data;
}
?>
静态页面生成函式
//静态页面生成函式
function phptohtm($filefrom,$fileto,$u2u=1){
if($u2u==1){
$data=PHP_Read($filefrom);
}else{
$data=$filefrom;
}
PHP_Write($fileto,$data);
return true;
}
?>
指定条件信息数量检索函式
//指定条件信息数量检索函式
function rec_exist($table,$where){
$query="select count(*) as num from $table ".$where;
$result=mysql_query($query) or die(nerror(1));
$rowcount=mysql_fetch_array($result);
$num=$rowcount["num"];
if ($num==0){
return false;
}
return $num;
}
?>
目录删除函式
//目录删除函式
function del_DIR($directory){
$mydir=dir($directory);
while($file=$mydir->read()){
if((is_dir("$directory/$file")) AND ($file!=".") AND ($file!="..")){
del_DIR("$directory/$file");
}else{
if(($file!=".") AND ($file!="..")){
unlink("$directory/$file");
//echo "unlink $directory/$file ok ";
}
}
}
$mydir->close();
rmdir($directory);
//echo "rmdir $directory ok ";
}
?>
目录名称合法性检测函式
//目录名称合法性检测
function isen($str){
$ret="";
for($i=0;$i $p=ord(substr($str,$i,1));
if(($p<48 & $p!=45 & $p!=46) || ($p>57 & $p<65) || ($p>90 & $p<97 & $p!=95) || $p>122){
nerror("不符合规范!");
}
$ret.=chr($p);
}
return $ret;
}
?>
分页函式
//分页函式
function splitlist($HALT,$LRLIST,$ECHOCNT,$paper,$table,$where,$page_id,$userid){
global $splitstr,$sumcnt;
if($paper=="" || $sumcnt==""){
$query = "select count(*) as num from $table $where";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$sumcnt=$row["num"];
if($sumcnt==0){
nerror("该版内还没有选择发布新闻 !");
}
$paper=1;
}
$sumpaper=($sumcnt-$sumcnt%$ECHOCNT)/$ECHOCNT;
if(($sumcnt%$ECHOCNT)!=0) $sumpaper+=1;
if($sumpaper==1 && $HALT==0) return($where);
$enwhere=base64_encode(base64_encode($where));
if(($LRLIST*2+1) < $sumpaper){
if(($paper-$LRLIST) < 2){
$tract=1;
$sub=$LRLIST*2+1;
}else if(($paper+$LRLIST) >= $sumpaper){
$tract=$sumpaper-($LRLIST*2);
$sub=$sumpaper;
}else{
$tract=$paper-$LRLIST;
$sub=$paper+$LRLIST;
}
}else{
$tract=1;
$sub=$sumpaper;
}
$uppaper=$paper-1;
$downpaper=$paper+1;
$startcnt=($paper-1)*$ECHOCNT;
$where.=" limit ${ startcnt },${ ECHOCNT }";
if($tract > 1) { $splitstr="【 << "; }
else $splitstr="【 << ";
for($i=$tract;$i<=$sub;$i++){
if ($i!=$paper) $splitstr.="".$i." ";
else $splitstr.="".$i." ";
}
if ($sub!=$sumpaper) $splitstr.=">> 】";
else $splitstr.=">> 】";
return($where);
}
?>
关于分页函式的使用说明
/*
#### 检索分页函式 ####
Int $HALT - 检索结果仅分1页时是否(1/0)显示页码条
Int $LRLIST - (页码条显示页码数-1)/2
Int $ECHOCNT - 检索时每页显示记录的数量
Int $paper - 页数,预提取:$paper=$HTTP_GET_VARS[paper];
Varchar $table - 数据表名,预附值:$table="db.table";
Varchar $where - 检索条件,预附值:$where="where field='value'";
Varchar $enwhere - 将原$where进行两次base64_encode()编码后以GET的方式提交
Varchar $splitstr - 页码条输出字串,执行函式后在相应的位置执行 echo $splitstr;
函式调用前需获取变量 -
$paper=$HTTP_GET_VARS[paper];
$sumcnt=$HTTP_GET_VARS[sumcnt];
$enwhere=$HTTP_GET_VARS[enwhere];
Return (Varchar $where) - 分页后检索语句的检索条件
注意:本函式需调用出错处理函式 nerror($error);
*/
图片文件上传函式
//图片文件上传函式
function upload_img($UploadFile,$UploadFile_name,$UploadFile_size,$UploadPath,$max_size=64){
//$TimeLimit=60; //设置超时限制时间 缺省时间为 30秒 设置为0时为不限时
//set_time_limit($TimeLimit);
if(($UploadFile!= "none" )&&($UploadFile != "" )){
$FileName=$UploadPath.$UploadFile_name;
if($UploadFile_size <1024){
$FileSize="(string)$UploadFile_size" . "字节";
}elseif($UploadFile_size <(1024 * $max_size)){
$FileSize=number_format((double)($UploadFile_size / 1024), 1) . " KB";
}else{
nerror("文件超过限制大小!");
}
//{
//$FileSize="number_format((double)($UploadFile_size" / (1024 * 1024)), 1) . " MB";
// }
if(!file_exists($FileName)){
if(copy($UploadFile,$FileName)){
return "$UploadFile_name ($FileSize)";
}else{
nerror("文件 $UploadFile_name 上载失败!");
}
unlink($UploadFile);
}else{
nerror("文件 $UploadFile_name 已经存在!");
}
//set_time_limit(30); //恢复缺省超时设置
}
}
如何判断ip地址合法性
if(!strcmp(long2ip(sprintf("%u",ip2long($ip))),$ip)) echo "is ipn";
----
email的正则判断
eregi("^[_.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z_-]+.)+[a-zA-Z]$", $email);
检测ip地址和mask是否合法的例子
$ip = '192.168.0.84';
$mask = '255.255.255.0';
$network = '192.168.0';
$ip = ip2long($ip);
$mask = ip2long($mask);
$network = ip2long($network);
if( ($ip & $mask) == $network) echo "valid ip and maskn";
?>
----
文件下载头部输出如何设定
header("Content-type: application/x-download");
header("Content-Disposition: attachment; filename=$file_download_name;");
header("Accept-Ranges: bytes");
header("Content-Length: $download_size");
echo 'xxx'
用header输出ftp下载方式,并且支持断点续传
一个例子:
PHP常用字符串函数
1、AddcSlashes 字符串加入反斜线 语法:string addcslashes(string str,string charlist);
2、AddSlashes 字符串加入反斜线 语法:string addslashes(string str); 在特定的字符前加反斜线:'、"、\、NULL
3、bin2hex 将二进位转成十六进位 语法:string bin2hex(string str);
4、Chop 去除连续空白,同rtrim() 语法:string chop(string str);
5、Chr Chr根据ASCII值返回字符 语法:string chr(int ascii);
6、chunk_split 将字符串分成小段 语法:string chunk_split(string string,int [chunklen],string [end]);
7、convert_cyr_string 字符串内码转换 语法:string convert_cyr_string(string str,string from,string to);
8、count_chars 返回字符串的信息 语法:mixed count_chars(string string,[mode]);
9、crypt 返回字符串用DES编码加密 语法:string crypt(string str,string [salt]);
10、echo 显示内容 语法:echo(string arg1,string [argn].....);
11、explode 切开字符串 语法:array explode(string separator,string string);
12、flush 清除输出缓冲区 语法:oid flush(void);
13、get_html_translation_table 返回函数htmlspecialchars()及htmlentites()的字符转换表 语法:string get_html_translation_table(int table);
14、get_meta_tags 抽出档案所有meta标记的资料 语法:array get_meta_tags(string filename,int [use_include_path])
15、htmlentities 将所有的字元都转民HTML字符串 语法:string htmlentities(string string);
16、htmlspecialchars 将特殊字元转成HTML格式 语法:string htmlspecialchars(string string);
17、implode 将数组变成字符串 语法:string implode(string glue,array pieces);
18、join 将数组变成字符串 语法:string join(string glue,array,pieces);
19、ltrim 去除连续空白 语法:string ltrim(string str);
20、md5 使用MD5对字符串处理 语法:string md5(string str);
21、Metaphone 返回字符串的读音值 语法:string metaphome(string str);
22、nl2br 将换行字元转成<br> 语法:string nl2br(string string);
23、Ord 取得字符的ASCII码值 语法:int ord(string string);
24、parse_str(string str); 语法:vid parse_str(string str)
25、print 输出字符串 语法:print(string arg);
26、printf 输出格式化字符串 语法:int printf(string format,mixed [args]...);
27、quoted_printable_decode 将qp编码字符串转成八进制字符串
28、QuoteMeta 特殊字符前加入反斜线
29、rawurldecode 解码以URL方式编码的字符串 语法:string rawurldecode(string str);
30、rawurlencode 将字符串编码成URL专用格式
31、setlocale 设置本地信息 语法:string setlocale(string category,string locale);
32、similar_text 计算字符串相似度 语法:int similar_text(string first,string second,double [percent]);
33、soundex 返回字符串的读音值 语法:string soundex(string str);
34、sprintf 将字符串格式化 语法:string sprintf(string format,mixed [args]...);
35、strcasecmp 不区分大小写进行二进制方式的字符串比较 语法:int strcasecmp(string str1,string st2);
36、strchr 寻找第一个出现的字符 语法:string strchr(string haystack,string needle);
37、strcmp 区分大小写二进制方式的字符串比较 语法:int strcmp(string str1,string str2);
38、strcspn 不同字符串的长度 语法:int strcspn(string str1,string st2);
39、strip_tags 去掉HTML及PHP的标记 语法:string strip_tags(string str,string [allowable_tags]);
40、stripcslashes 删除反斜线字符串 语法:string stripcslashes(string str);
41、stripslashes 删除反斜线字符 语法:string stripslashes(string str);
42、stristr 返回一个字符串在另一个字符串中出现以后的内容 语法:string stristr(string haystack,string needle);
43、strlen 取得字符串的长度
44、strpos 取得字符串中某字符最先出现的位置 语法:int strpos(string haystack,string needle,int [offset]);
45、strrchr 取得某字符最后出现处起的字符串 语法:string strrchr(string haystack,string needle);
46、str_repet 重复一个字符串 语法:str_repeat(string input,int multiplier);
47、strrev 颠倒字符串 语法:string strrev(string string);
48、strrpos 寻找字符串中某字符最后出现的位置 语法:int strrpos(string haystack,char needle);
49、strspn 计算一个字符串在另一个字符串中出现的数目 语法:int strspn(string str1,string str2);
50、strstr 返回一个字符串在另一个字符串中出现以后的内容 语法:string strstr(string haystack,string needle);
51、strtok 切开字符串 语法:string strtok(string arg1, string arg2); 以字符串arg2为分隔符,切开字符串arg1、arg2中可以放入多个分隔符。
52、strtolower 字符串全转为小写 语法:string strtolower(string str);
53、strtoupper 字符串全转为大写 语法:string strtoupper(string str);
54、str_replace 字符串替换 语法:str_replace(string needle,string str,string haystack); 在字符串haystack中替换所有字符串str为needle。本函数可以使用ereg_replace()代替。
55、strtr 字符串替换 语法:string strtr(string str, string from, string to); 字符替换,将字符串str中包含from字符的一一对应地换为to中的字符。如果from与to的字符数不相同,将忽略多出的字符,这个函数的替换是字符,而不是单词或字符串替换。
56、substr 取部分字符串 语法:string substr(string string, int start, int [length]);
57、substr_rreplace 字符串替换 语法:string substr_replace(string string,string replacement, int start, int [length]); 从string中提取字符串,并且以字符串replacement替换,参数start、length的定义及使用与subxstr相同。
58、trim 截去字符串首尾的空格 语法:string trim(string str);
59、ucfirst 将字符串第一个字符改为大写 语法:string ucfirst(string str);
60、ucwords 将字符串每个单词第一个字母改大写 语法:string ucwords(string str);
header('Pragma: public');
header('Cache-Control: private');
header('Cache-Control: no-cache, must-revalidate');
header('Accept-Ranges: bytes');
header('Connection: close');
header("Content-Type: audio/mpeg");
header("Location:ftp://download:1bk3l4s3k9s2@232.2.22.22/2222/web技术开发知识库/cn_web.rmvb");
正则匹配中文
ereg("^[".chr(0xa1)."-".chr(0xff)."]+$", $str);
批量替换文本里面的超级链接
<?php
function urlParse($str = ''){
if ('' == $str) return $str;
$types = array("http", "ftp", "https");
$replace = <<<EOPHP
'<a href="'.htmlentities('\1').htmlentities('\2').'">'.htmlentities('\1').htmlentities('\2').'</a>'
EOPHP;
$ret = $str;
while(list(,$type) = each($types)){
$ret = preg_replace("|($type://)([^\s]*)|ie ", $replace, $ret);
}
return $ret;
}
?>
意:如$str="this is a book!";我们有$str[0]或$str{0}表示"t",以此类推的说法哈
//去除空格和其他符号
1. string trim(string str [ , string charlist] ) :两边去空格或其它字符
2. string ltrim( string str [ , string charlist ]) :左边去空格或其它字符
3. string rtrim( string str [ , string charlist] ) :左边去空格或其它字符 chop()函数是rtrim()的别名,功能相同
//对字符串大小写的转换
4. string strtoupper( string str ) : 将字符串转换成大写
5. string strtolower( string str ) : 将字符串转换成小写
6. string ucfirst( string str ) : 如果字符串第一个字符是字母,则将其转换成大写
7. string ucword( string str ) :将字符串中出现的每一个单词的第一个字母转换成大写
//加入和删除反斜杠
8. string addslashes( string str) : 加入反斜杠
9. string stripslashes(string str) :删除反斜杠
//HTML格式化
10. string nl2br( string str ) : 将"\n"等的换行符转换成HTML中的“<br>”标签,从而在浏览器中实现换行。
11. string htmlspecialchars( string str [ , int quote_style [ , string charset ]]) :用来显示一些特殊字符(如 “&
”,“"”,“<”等),而不直接对其进行HTML解析。
12. string htmlentities ( string str [ , int quote_style [ , string charset ]]) :和htmlspecialchars()基本上是一致
的,但是本函数有可以转义更多的HTML字符。第三个参数有时需要加入,原因是防止有乱码,可加为"gb2312"等等
13. string html_entity_decode( string str [, int quote_style [, string charset ]]) :与htmlentities相反,它可以对
显示符串进反向转换,转换后的字符串能够按HTML进行解析。
14. string strip_tags( string str [ , string tags]) : 去除所有的HTML和PHP标记。其中,tags表示不去除的字符。
//字符吕的连接和分割
15. array explode( string separator , string str [ ,int limit ]) :分割字符串
16. array implode( string glue , array pieces ) : 连接多个字符串。glue表示连接多个字符串的连接符;pieces表示数组
17. array join( string glue ,array pieces ) :与implode()效果是一样的。
18. array substr( string str , int start [ , int length ]) : 提取部分子字符串
19. string strtok( string str , string separator) :字符串分割提取。 它仅获取一个字符串,要想获取全部需要用循环语
句输出。
20. array split ( string separator , string str [ , int limit ]) : 分割字符串
//字符串的比较
21. int strcmp( string str1, string str2 ) :对字符串进行比较。它是区分大小写的。按字典顺序对字符串进行比较。即在
字典后面的字符串大于前面的字符串。若为$str1大于$str2则返回一个正数,否则返回一个负数。
22.int strcasecmp( string str1 , string str2 ) :对字符串进行比较(不区分大小写),其他的功能与strcmp()函数是一致
的。
23. int strnatcmp ( string str1 , string str2 ) :按自然排序进行字符串比较。即按人们日常生活中的习惯进行排序,7小
于56,但在strcmp中,7是大于56的.区别就是在这里了。这里的自然排序是区分大小写的
24.int strnatcasecmp( string str1 , string str2 ) :按自然排序进行比较(不区分大小写),其他和功能和strnatcmp()是
一样的
//字符串的查找和替换
-----查找
25. string strstr( string str , string key ) : 查找一个字符串。找到则返回从key到结尾的字符串,若有多个匹配则只返
回第一个。该函数是区分大小写的。另外,strchr()与本函数功能相同。
26. string stristr ( string str , string key ) :和strstr()函数基本上是一致,只是该函数不区分大小写而已。
27. string strrchr ( string str , string key ) :和strstr()基本上是一致,该函数也是区分大小写的。本函数是从尾部开
始查找匹配的字符串,如果没有找到则返回false,找到了则返回从key到尾部的字符串。如果不止一个匹配,则返回从尾部开始
查找的第一个匹配字符串。
28. int strpos( string str , string key [ , int offset ]) : 查找指定字符串或字符在原始字符串中首次出现的位置。
offset不能为负数,此函数是区别大小写的。第一位字符是0,所以,在比较大小是否相等时,需要用“===”恒等式才行的。
29. int strrpos ( string str , string key [, int offset ]) :和strpos()函数基本上是一致的,只是它从尾部从开查找。
是区分大小写的
30. int strripos ( string str , string key [ , int offset ]) :函数与strrpos()基本一致,唯一的不同之处在于它是不区
分大小写的
31. int stripos( string str , string key [ , int offset ]) :本函数与strpos()基本上也是一样的,只是它不区分大小写
-----替换
32. mixed str_replace( mixed search , mixed replace , mixed subject [ , int &count ]) : 替换。查找和替换的内容也
可以是数组形式表达的。这是区分大小写的
33. string substr_replace( string str , string replacement , int start [ , int length ]) :
34. mixed str_ireplace (mixed search , mixed replace , mixed subject [ , int &count ]) :本函数与str_replace()基本
一致,只是本函数不区分大小写,其他无异。
//其他常用字符串函数
35. int strlen(string str ) :计算字符串长度。其中空格也是算的。
36. string chr( int ascii ) :转换ASCII码为字符。
37. int ord( string str ) :将字符转换为ASCII码值。与chr()函数刚好相反的。
38. int similar_text( string first , string second [, float &percent ]) :比较字符串的相似性,返回值是相匹配的字符
个数。&percent不写成传地址的方式也是可以的。
39. string strrev( string str ) :逆转字符串
40. int strspn( string str1 , string str2 [ , int start [ , int length ]]) :计算匹配长度。其中,start和length是对
应$str1的开头和尾部的,请不要搞乱了
41. int strcspn( string str1 , string str2 [ , int start [ , int length ]]) :计算非匹配长度.注意,它是区分大小写
的
42. void parse_str( string str [ , array arr ]) :将字符串分解保存至变量。通常用于对URL地址进行解析。
43. mixed str_word_count( string str [, int format ]) :计算字符串中包含的单词个数
44. string wordwrap( string str [ , int width [ , string break [ , bool cut ]]]) :将字符串按字符个数进行换行
45. string str_repeat( string str , int multiplier ) :对字符串进行重复组合
46. string md5( string str [ , bool raw_output ]) :将一个字符串进行MD5计算
47. string md5_file(string str) :对一个文件进行MD5加密,使用方式和md5()函数类似
//获得当前的脚本网址 function get_php_url(){ if(!empty($_SERVER["REQUEST_URI"])){ $scriptName = $_SERVER["REQUEST_URI"]; $nowurl = $scriptName; }else{ $scriptName = $_SERVER["PHP_SELF"]; if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName; else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"]; } return $nowurl; } //把全角数字转为半角数字 function GetAlabNum($fnum){ $nums = array("0","1","2","3","4","5","6","7","8","9"); $fnums = "0123456789"; for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum); $fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum); if($fnum=="") $fnum=0; return $fnum; } //去除HTML标记 function Text2Html($txt){ $txt = str_replace(" "," ",$txt); $txt = str_replace("<","<",$txt); $txt = str_replace(">",">",$txt); $txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt); return $txt; }
//清除HTML标记 function ClearHtml($str){ $str = str_replace('<','<',$str); $str = str_replace('>','>',$str); return $str; } //相对路径转化成绝对路径 function relative_to_absolute($content, $feed_url) { preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol); $server_url = preg_replace("/(http|https|ftp|news):\/\//", "", $feed_url); $server_url = preg_replace("/\/.*/", "", $server_url);
if ($server_url == '') { return $content; }
if (isset($protocol[0])) { $new_content = preg_replace('/href="\//', 'href="'.$protocol[0].$server_url.'/', $content); $new_content = preg_replace('/src="\//', 'src="'.$protocol[0].$server_url.'/', $new_content); } else { $new_content = $content; } return $new_content; } //取得所有链接 function get_all_url($code){ preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr); return array('name'=>$arr[2],'url'=>$arr[1]); }
//获取指定标记中的内容 function get_tag_data($str, $start, $end){ if ( $start == '' || $end == '' ){ return; } $str = explode($start, $str); $str = explode($end, $str[1]); return $str[0]; } //HTML表格的每行转为CSV格式数组 function get_tr_array($table) { $table = preg_replace("'<td[^>]*?>'si",'"',$table); $table = str_replace("</td>",'",',$table); $table = str_replace("</tr>","{tr}",$table); //去掉 HTML 标记 $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table); //去掉空白字符 $table = preg_replace("'([\r\n])[\s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table);
$table = explode(",{tr}",$table); array_pop($table); return $table; }
//将HTML表格的每行每列转为数组,采集表格数据 function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); //去掉 HTML 标记 $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table); //去掉空白字符 $table = preg_replace("'([\r\n])[\s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; }
//返回字符串中的所有单词 $distinct=true 去除重复 function split_en_str($str,$distinct=true) { preg_match_all('/([a-zA-Z]+)/',$str,$match); if ($distinct == true) { $match[1] = array_unique($match[1]); } sort($match[1]); return $match[1]; }