按功能分类PHP函数

lsx220

贡献于2014-09-05

字数:22901 关键词: PHP开发 PHP

 ☆求值 number array_sum ( array array ) 计算数组中所有值的和 number array_product ( array array ) 计算数组中所有值的乘积 ☆排序 bool sort ( array &array [, int sort_flags] ) 对数组排序,删除原有的键名,为单元赋予新的键名 bool rsort ( array &array [, int sort_flags] ) 对数组逆向排序,删除原有的键名,为单元赋予新的键名 bool arsort ( array &array [, int sort_flags] ) 对数组进行逆向排序并保持索引关系 bool ksort ( array &array [, int sort_flags] ) 对数组按照键名排序,保留键名 bool usort ( array &array, callback cmp_function ) 使用用户自定义的比较函数对数组中的值进行排序 注:比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分别返回一个小于,等于或大于零的整数。 ---------------------------------------------------------------------------- bool arsort ( array &array [, int sort_flags] ) bool krsort ( array &array [, int sort_flags] ) bool natsort ( array &array ) 用“自然排序”算法对数组排序 bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] ) 对多个数组或多维数组进行排序 ☆ 颠倒/对换 array array_reverse ( array array [, bool preserve_keys] ) 返回一个单元顺序相反的数组,如果 preserve_keys 为 TRUE 则保留原来的键名。 array array_flip ( array trans ) 交换数组中的键和值 string strrev ( string string )颠倒一个字符串 ☆ 栈操作 mixed array_pop ( array &array ) 将数组最后一个单元弹出(出栈),返回 array 数组的最后一个单元 int array_push ( array &array, mixed var [, mixed ...] ) 将一个或多个单元压入数组的末尾(入栈),返回数组新的单元总数。 mixed array_shift ( array &array ) 将数组开头的单元移出数组,返回array中移出的元素 int array_unshift ( array &array, mixed var [, mixed ...] ) 在数组开头插入一个或多个单元,返回 array 数组新的单元数目 ☆ 截取 array array_slice ( array array, int offset [, int length [, bool preserve_keys]] ) 从数组中取出一段 array array_splice ( array &input, int offset [, int length [, array replacement]] ) 把数组中的一部分去掉并用其它值取代,返回一个包含有被移除单元的数组 string substr ( string string, int start [, int length] ) 返回字符串中的一部分 string mb_substr ( string str, int start [, int length [, string encoding]] ) ☆ 分离/合并 array explode ( string separator, string string [, int limit] ) 使用一个字符串分割另一个字符串 string implode ( string glue, array pieces ) Join array elements with a string,等同于 join()函数 array preg_split ( string pattern, string subject [, int limit [, int flags]] ) 用正则表达式分割字符串 array str_split ( string string [, int split_length] )把字符串转换成数组,如果length指定的话,返回一个数组,每个单元都有length个字符,否则为1个字符 string strtok ( string str, string token )用一个符号来分割一个字符串,返回字符串 例子 1. strtok() example ";     $tok = strtok(" \n\t"); } ?> 例子 2. Old strtok() behavior Output: string(0) "" string(9) "something" 例子 3. New strtok() behavior Output: string(9) "something" bool(false) ☆ 填充 string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] ) 在一字符串中附加另一个指定长度的字符串 注:int pad_type 参数:STR_PAD_RIGHT, STR_PAD_LEFT, STR_PAD_BOTH 表示字符串附加的方向 string str_repeat ( string input, int multiplier )重复一个字符串 array array_fill ( int start_index, int num, mixed value ) 用给定的值填充数组 ☆ 替换 mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )search和replace可以是数组,如果参数count指定的话,echo count将得到替换的数目 mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count] )同上,只是不区分大小写 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] ) 执行正则表达式的搜索和替换 附:在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。 replacement 可以包含 \\n 形式或(自 PHP 4.0.4 起)$n 形式的逆向引用,首选使用后者。每个此种引用将被替换为与第 n 个被捕获的括号内的子模式所匹配的文本。n 可以从 0 到 99,其中 \\0 或 $0 指的是被整个模式所匹配的文本。对左圆括号从左到右计数(从 1 开始)以取得子模式的数目。 对替换模式在一个逆向引用后面紧接着一个数字时(即:紧接在一个匹配的模式后面的数字),不能使用熟悉的 \\1 符号来表示逆向引用。举例说 \\11,将会使 preg_replace() 搞不清楚是想要一个 \\1 的逆向引用后面跟着一个数字 1 还是一个 \\11 的逆向引用。本例中的解决方法是使用 \${1}1。这会形成一个隔离的 $1 逆向引用,而使另一个 1 只是单纯的文字。 string strtr ( string str, string from, string to ) 替换一些字符 string strtr ( string str, array replace_pairs )替换一些字符 例子 2. strtr() example with two arguments "hi", "hi" => "hello"); echo strtr("hi all, I said hello", $trans); ?> This will show: hello all, I said hi ☆ 基于字符取出一段字符串 string strstr ( string haystack, string needle ) Find first occurrence of a string string strrchr ( string haystack, string needle ) Find the last occurrence of a character in a string string stristr ( string haystack, string needle )同上,只是不区分大小写 ☆ 其它 array array_keys ( array input [, mixed search_value [, bool strict]] )返回数组中所有的键名 array array_values ( array input ) 返回数组中所有的值 array array_unique ( array array ) 移除数组中重复的值 mixed array_rand ( array input [, int num_req] ) 从数组中随机取出一个或多个单元 mixed array_search ( mixed needle, array haystack [, bool strict] ) 在数组中搜索给定的值,如果成功则返回相应的键名 ------------------------------------------------------------ bool array_key_exists ( mixed key, array search ) 检查给定的键名或索引是否存在于数组中 bool in_array ( mixed needle, array haystack [, bool strict] ) 检查数组中是否存在某个值 -------------------------------------------------------------- bool isset ( mixed var [, mixed var [, ...]] ) 检测变量是否设置 void unset ( mixed var [, mixed var [, ...]] ) 释放给定的变量 bool empty ( mixed var ) 检查一个变量是否为空 ☆ 长度 array array_count_values ( array input ) 统计数组中所有的值出现的次数 int count ( mixed var [, int mode] )  计算数组中的单元数目或对象中的属性个数 int strlen ( string string )计算字符串的长度 int mb_strlen ( string str [, string encoding] )带有编码的字符串的长度的计算 ☆ 数组交集/差集 array array_diff ( array array1, array array2 [, array ...] ) 计算数组的差集,返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。 array array_intersect ( array array1, array array2 [, array ...] ) 计算数组的交集,返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。 ☆ 数组合并 1.array array_merge ( array array1 [, array array2 [, array ...]] ) 合并一个或多个数组,如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。 2.数组1+数组2: 如果你想完全保留原有数组并只想新的数组附加到后面,用 + 运算符: "data"); $result = $array1 + $array2; ?> 数字键名将被保留从而原来的关联保持不变。 ☆ 回调函数作用数组 array array_filter ( array input [, callback callback] ) 用回调函数过滤数组中的单元,依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。 1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); $array2 = array(6, 7, 8, 9, 10, 11, 12); echo "Odd :\n"; print_r(array_filter($array1, "odd")); echo "Even:\n"; print_r(array_filter($array2, "even")); ?> 上例将输出: Odd : Array (     [a] => 1     [c] => 3     [e] => 5 ) Even: Array (     [0] => 6     [2] => 8     [4] => 10     [6] => 12 ) array array_map ( callback callback, array arr1 [, array ...] ) 将回调函数作用到给定数组的单元上,返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。 例子 1. array_map() 例子 这使得 $b 成为: Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 ) bool array_walk ( array &array, callback funcname [, mixed userdata] ) 对数组中的每个成员应用用户函数 例子 1. array_walk() 例子 "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); function test_alter(&$item1, $key, $prefix) {     $item1 = "$prefix: $item1"; } function test_print($item2, $key) {     echo "$key. $item2
\n"; } echo "Before ...:\n"; array_walk($fruits, 'test_print'); array_walk($fruits, 'test_alter', 'fruit'); echo "... and after:\n"; array_walk($fruits, 'test_print'); ?> 上例将输出: Before ...: d. lemon a. orange b. banana c. apple ... and after: d. fruit: lemon a. fruit: orange b. fruit: banana c. fruit: apple ☆ 随机打乱 string str_shuffle ( string str )随机打乱一字符串的顺序 bool shuffle ( array &array ) 本函数打乱(随机排列单元的顺序)一个数组。,本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序 int rand ( [int min, int max] ) 产生一个随机整数 int mt_rand ( [int min, int max] ) 生成更好的随机数 例子 1. mt_rand() 范例 上例的输出类似于: 1604716014 1478613278 6 ☆ 比较 int strcmp ( string str1, string str2 ) 比较两个字符串,如果Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal. int strcasecmp ( string str1, string str2 )同上,不过对大小写不区分 ------------------------------------------------------------------------------------------------- mixed min ( number arg1, number arg2 ) 找出最小值,min() 返回参数中数值最小的。 如果仅有一个参数且为数组,min() 返回该数组中最小的值。如果第一个参数是整数、字符串或浮点数,则至少需要两个参数而 min() 会返回这些值中最小的一个。可以比较无限多个值。 注: PHP 会将非数值的 string 当成 0,但如果这个正是最小的数值则仍然会返回一个字符串。如果多个参数的值都是 0,min() 将返回第一个(最左边的值)。 mixed max ( number arg1, number arg2 ) 找出最大值 ☆ 位置 int strpos ( string haystack, mixed needle [, int offset] ) 从开头找出第一个字符所在字符串中的位置 int strrpos ( string haystack, string needle [, int offset] ) 从末尾找出第一个字符所在字符串中的位置 int strripos ( string haystack, string needle [, int offset] )同上,只是不区分大小写 ☆ 数学 float round ( float val [, int precision] ) 对浮点数进行四舍五入 float ceil ( float value )  进一法取整 float floor ( float value )  舍去法取整 string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] ) Format a number with grouped thousands number pow ( number base, number exp ) 指数表达式 float exp ( float arg ) 计算 e(自然对数的底)的指数 number abs ( mixed number ) 绝对值 例子 1. number_format() Example For instance, French notation usually use two decimals, comma (',') as decimal separator, and space (' ') as thousand separator. This is achieved with this line : ☆ 格式化 string sprintf ( string format [, mixed args [, mixed ...]] ) 返回格式化的内容 例子 2. Argument swapping int printf ( string format [, mixed args [, mixed ...]] )输出格式化的内容 ☆ 输入输出缓存控制函数 bool ob_start ( [callback output_callback [, int chunk_size [, bool erase]]] ) Turn on output buffering string ob_get_contents ( void ) Return the contents of the output buffer int ob_get_length ( void ) Return the length of the output buffer void flush ( void ) 刷新输出缓冲 void ob_flush ( void ) Flush (send) the output buffer bool ob_end_flush ( void ) Flush (send) the output buffer and turn off output buffering bool ob_end_clean ( void ) Clean (erase) the output buffer and turn off output buffering ☆ 执行命令函数 string exec ( string command [, array &output [, int &return_var]] ) Execute an external program string system ( string command [, int &return_var] ) Execute an external program and display the output void passthru ( string command [, int &return_var] ) Execute an external program and display raw output ☆ 时间 string strftime ( string format [, int timestamp] ) 根据区域设置格式化本地时间/日期 格式字串能识别下列转换标记: · %a - 当前区域星期几的简写 · %A - 当前区域星期几的全称 · %b - 当前区域月份的简写 · %B - 当前区域月份的全称 · %c - 当前区域首选的日期时间表达 · %C - 世纪值(年份除以 100 后取整,范围从 00 到 99) · %d - 月份中的第几天,十进制数字(范围从 01 到 31) · %D - 和 %m/%d/%y 一样 · %e - 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ' 1' 到 '31') · %g - 和 %G 一样,但是没有世纪 · %G - 4 位数的年份,符合 ISO 星期数(参见 %V)。和 %V 的格式和值一样,只除了如果 ISO 星期数属于前一年或者后一年,则使用那一年。 · %h - 和 %b 一样 · %H - 24 小时制的十进制小时数(范围从 00 到 23) · %I - 12 小时制的十进制小时数(范围从 00 到 12) · %j - 年份中的第几天,十进制数(范围从 001 到 366) · %m - 十进制月份(范围从 01 到 12) · %M - 十进制分钟数 · %n - 换行符 · %p - 根据给定的时间值为 `am' 或 `pm',或者当前区域设置中的相应字符串 · %r - 用 a.m. 和 p.m. 符号的时间 · %R - 24 小时符号的时间 · %S - 十进制秒数 · %t - 制表符 · %T - 当前时间,和 %H:%M:%S 一样 · %u - 星期几的十进制数表达 [1,7],1 表示星期一 警告 尽管 ISO 9889:1999(当前的 C 标准)明确指出一周从星期一开始,但是 Sun Solaris 的一周似乎从星期天开始并作为 1。 · %U - 本年的第几周,从第一周的第一个星期天作为第一天开始 · %V - 本年第几周的 ISO 8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。(用 %G 或者 %g 作为指定时间戳相应周数的年份组成。) · %W - 本年的第几周数,从第一周的第一个星期一作为第一天开始 · %w - 星期中的第几天,星期天为 0 · %x - 当前区域首选的时间表示法,不包括时间 · %X - 当前区域首选的时间表示法,不包括日期 · %y - 没有世纪数的十进制年份(范围从 00 到 99) · %Y - 包括世纪数的十进制年份 · %Z 或 %z - 时区名或缩写 · %% - 文字上的 `%' 字符 int strtotime ( string time [, int now] ) 将任何英文文本的日期时间描述解析为 Unix 时间戳 int time ( void ) 返回当前的 Unix 时间戳 mixed microtime ( [bool get_as_float] ) 返回当前 Unix 时间戳和微秒数 string date ( string format [, int timestamp] ) 格式化一个本地时间/日期 int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] ) 取得一个日期的 Unix 时间戳 ☆ 输出 bool print_r ( mixed expression [, bool return] ) 打印关于变量的易于理解的信息,可使用 return 参数。若此参数设为 TRUE,print_r() 将不打印结果(此为默认动作),而是返回其输出。 void var_dump ( mixed expression [, mixed expression [, ...]] ) mixed var_export ( mixed expression [, bool return] ) 输出或返回一个变量的字符串表示,此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。 void echo ( string arg1 [, string ...] ) int print ( string arg ) ☆ 文件操作 bool copy ( string source, string dest ) 拷贝文件,将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。 ----------------------- bool move_uploaded_file ( string filename, string destination ) 将上传的文件移动到新位置 bool is_uploaded_file ( string filename ) 判断文件是否是通过 HTTP POST 上传的 ------------------------- bool rename ( string oldname, string newname [, resource context] ) 重命名一个文件或目录 resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] ) 打开文件或者 URL mode 说明 'r' 只读方式打开,将文件指针指向文件头。 'r+' 读写方式打开,将文件指针指向文件头。 'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 mode 说明 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。 bool fclose ( resource handle ) 关闭一个已打开的文件指针 -------------------------------------------------------------------------------------------- string fread ( int handle, int length ) 读取文件(可安全用于二进制文件) string fgets ( int handle [, int length] ) 从文件指针中读取一行, 从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。 string fgetc ( resource handle ) 从文件指针中读取字符, 返回一个包含有一个字符的字符串,该字符从 handle 指向的文件中得到。碰到 EOF 则返回 FALSE string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] ) 将整个文件读入一个字符串 bool feof ( resource handle ) 测试文件指针是否到了文件结束的位置 -------------------------------------------------------------------------------------- int readfile ( string filename [, bool use_include_path [, resource context]] ) 输出一个文件,读入一个文件并写入到输出缓冲。 返回从文件中读入的字节数。 --------------------------------- int fwrite ( resource handle, string string [, int length] ) 写入文件(可安全用于二进制文件) int file_put_contents ( string filename, string data [, int flags [, resource context]] ) 将一个字符串写入文件 array glob ( string pattern [, int flags] ) 寻找与模式匹配的文件路径 例子 1. 怎样用 glob() 方便地替代 opendir() 和相关函数 上例的输出类似于: funclist.txt size 44686 funcsummary.txt size 267625 quickref.txt size 137820 array file ( string filename [, int use_include_path [, resource context]] )把整个文件读入一个数组中 int filesize ( string filename ) 取得文件大小 string filetype ( string filename ) 取得文件类型 int filemtime ( string filename ) 取得文件修改时间 int fileatime ( string filename ) 取得文件的上次访问时间 resource opendir ( string path [, resource context] ) 打开目录句柄 void closedir ( resource dir_handle ) 关闭目录句柄 string readdir ( resource dir_handle ) 从目录句柄中读取条目,返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。 dir ( string directory ) 这是个仿冒面向对象的机制来读取一个目录。给定的 directory 被打开。一旦目录被打开,有两个属性可用。handle 属性可以用在其它目录函数例如 readdir(),rewinddir() 和 closedir() 中。path 属性被设为被打开的目录路径。有三个方法可用:read,rewind 和 close。 例子 1. dir() 例子 请留意下面例子中检查 dir() 返回值的风格。我们明确地测试返回值是否全等于(值和类型都相同 - 更多信息参见比较运算符)FALSE,否则任何目录项的名称求值为 FALSE 的都会导致循环停止。 handle . "\n"; echo "Path: " . $d->path . "\n"; while (false !== ($entry = $d->read())) {    echo $entry."\n"; } $d->close(); ?> 上例的输出类似于: Handle: Resource id #2 Path: /etc/php5 . .. apache cgi cli array scandir ( string directory [, int sorting_order [, resource context]] ) 列出指定路径中的文件和目录 bool is_dir ( string filename ) 判断给定文件名是否是一个目录 ------------------------------------------------- bool mkdir ( string pathname [, int mode] ) 新建目录,尝试新建一个由 pathname 指定的目录。 注意也许想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的 umask 修改,可以用 umask() 来改变 默认的 mode 是 0777,意味着最大可能的访问权。有关 mode 的更多信息请阅读 chmod() 页面。 例子 1. mkdir() 例子 bool rmdir ( string dirname )  删除目录 bool unlink ( string filename ) 删除文件 ☆ 判断存在/加载 bool function_exists ( string function_name ) 如果函数定义了,为真,否则为假 bool extension_loaded ( string name )判断PHP模块是否加载,是为真,否则为假 ☆ INI配置 string ini_get ( string varname ) Gets the value of a configuration option string ini_set ( string varname, string newvalue ) void ini_restore ( string varname ) Restores the value of a configuration option int get_magic_quotes_gpc ( void ) 得到当前magic quotes gpc配置的值,如果为1,即为on,如果为0,即为off string addslashes ( string str ) 使用反斜线引用字符串 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。 一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。 默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。 例子 1. addslashes() 示例 string stripslashes ( string str ) Un-quote string quoted with addslashes() ☆ 模拟 resource fsockopen ( string target [, int port [, int &errno [, string &errstr [, float timeout]]]] ) Open Internet or Unix domain socket connection 例子 1. fsockopen() Example \n"; } else {     $out = "GET / HTTP/1.1\r\n";     $out .= "Host: www.example.com\r\n";     $out .= "Connection: Close\r\n\r\n";     fwrite($fp, $out);     while (! feof($fp)) {         echo fgets($fp, 128);     }     fclose($fp); } ?> CURL函数 curl_setop()函数中的参数中文说明(2006-12-19 15:54:16) 分类:PHP curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置,value是这个选项给定的值。下列选项的值将被作为长整形使用(在option参数中指定):  *CURLOPT_INFILESIZE: 当你上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小。 *CURLOPT_VERBOSE: 如果你想CURL报告每一件意外的事情,设置这个选项为一个非零值。 *CURLOPT_HEADER: 如果你想把一个头包含在输出中,设置这个选项为一个非零值。 *CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条,设置这个选项为一个非零值。注意:PHP自动设置这个选项为非零值,你应该仅仅为了调试的目的来改变这个选项。 *CURLOPT_NOBODY: 如果你不想在输出中包含body部分,设置这个选项为一个非零值。 *CURLOPT_FAILONERROR: 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时,不显示,设置这个选项为一人非零值。默认行为是返回一个正常页,忽略代码。 *CURLOPT_UPLOAD: 如果你想让PHP为上传做准备,设置这个选项为一个非零值。 *CURLOPT_POST: 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。 *CURLOPT_FTPLISTONLY: 设置这个选项为非零值,PHP将列出FTP的目录名列表。 *CURLOPT_FTPAPPEND: 设置这个选项为一个非零值,PHP将应用远程文件代替覆盖它。 *CURLOPT_NETRC: 设置这个选项为一个非零值,PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。 *CURLOPT_FOLLOWLOCATION: 设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。 *CURLOPT_PUT: 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项. *CURLOPT_MUTE: 设置这个选项为一个非零值,PHP对于CURL函数将完全沉默。 *CURLOPT_TIMEOUT: 设置一个长整形数,作为最大延续多少秒。 *CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数,控制传送多少字节。 *CURLOPT_LOW_SPEED_TIME: 设置一个长整形数,控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。 *CURLOPT_RESUME_FROM: 传递一个包含字节偏移地址的长整形参数,(你想转移到的开始表单)。 *CURLOPT_SSLVERSION: 传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定,在更多的安全中你必须手工设置。 *CURLOPT_TIMECONDITION: 传递一个长参数,指定怎么处理CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。 *CURLOPT_TIMEVALUE: 传递一个从1970-1-1开始到现在的秒数。这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用,或被默认TIMECOND_IFMODSINCE使用。下列选项的值将被作为字符串:  *CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。 *CURLOPT_USERPWD: 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。 *CURLOPT_PROXYUSERPWD: 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。 *CURLOPT_RANGE: 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。 *CURLOPT_POSTFIELDS: 传递一个作为HTTP “POST”操作的所有数据的字符串。 *CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。 *CURLOPT_USERAGENT: 在HTTP请求中包含一个”user-agent”头的字符串。 *CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-’(使用系统默认IP地址)。 *CURLOPT_COOKIE: 传递一个包含HTTP cookie的头连接。 *CURLOPT_SSLCERT: 传递一个包含PEM格式证书的字符串。 *CURLOPT_SSLCERTPASSWD: 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。 *CURLOPT_COOKIEFILE: 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。 *CURLOPT_CUSTOMREQUEST: 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。下列的选项要求一个文件描述(通过使用fopen()函数获得):  *CURLOPT_FILE: 这个文件将是你放置传送的输出文件,默认是STDOUT. *CURLOPT_INFILE: 这个文件是你传送过来的输入文件。 *CURLOPT_WRITEHEADER: 这个文件写有你输出的头部分。 *CURLOPT_STDERR: 这个文件写有错误而不是stderr。用来获取需要登录的页面的例子,当前做法是每次或许都登录一次,有需要的人再做改进了:) 例子: $cookie_jar = tempnam('./tmp','cookie'); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, 'http://******'); curl_setopt($ch, CURLOPT_POST, 1); $request = 'email_address=&password=&action='; curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //把返回来的cookie信息保存在$cookie_jar文件中 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); //设定返回的数据是否自动显示 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息 curl_setopt($ch, CURLOPT_HEADER, false); //设定是否输出页面内容 curl_setopt($ch, CURLOPT_NOBODY, false); curl_exec($ch); curl_close($ch); //get data after login $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, 'http://*****'); curl_setopt($ch2, CURLOPT_HEADER, false); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar); $orders = curl_exec($ch2); echo ''; echo strip_tags($orders); echo ''; curl_close($ch2); 实践证明很稳定:) ☆ HTML符号转换 string htmlspecialchars ( string string [, int quote_style [, string charset]] ) Convert special characters to HTML entities The translations performed are: · '&' (ampersand) becomes '&' · '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. · ''' (single quote) becomes ''' only when ENT_QUOTES is set. · '<' (less than) becomes '<' · '>' (greater than) becomes '>' string nl2br ( string string ) 把换行符转化成
符号 ☆ 编码/解码 string base64_encode ( string data ) 使用 MIME base64 对数据进行编码,base64_encode() returns 使用 base64 对 data 进行编码。设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。 Base64-encoded 数据要比原始数据多占用 33% 左右的空间。 string base64_decode ( string encoded_data ) 对使用 MIME base64 编码的数据进行解码 例子 1. base64_decode() 示例 此示例将显示: This is an encoded string string urlencode ( string str ) 编码 URL 字符串,返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页: 例子 1. urlencode() 示例 '; ?> string urldecode ( string str ) 解码已编码的 URL 字符串 string rawurlencode ( string str ) 按照 RFC 1738 对 URL 进行编码, string rawurldecode ( string str ) 对已编码的 URL 字符串进行解码 ----------------------------------------------------------------------- string serialize ( mixed value ) 产生一个可存储的值的表示,返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。 这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。 结构如这样:{变量名:变量长度:“变量值“},SESSION储存就是这样组织结构的文件 mixed unserialize ( string str [, string callback] ) 从已存储的表示中创建 PHP 的值 ☆ 进制转换 string dechex ( int number ) 十进制转换为十六进制 number hexdec ( string hex_string ) 十六进制转换为十进制 number bindec ( string binary_string ) 二进制转换为十进制 string decbin ( int number ) number octdec ( string octal_string ) 八进制转换为十进制 string decoct ( int number )  十进制转换为八进制 string base_convert ( string number, int frombase, int tobase ) 在任意进制之间转换数字 返回一字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。 例子 1. base_convert() 范例 输出为: 101000110111001100110100 ☆ 高亮 mixed highlight_file ( string filename [, bool return] )对一个文件高亮显示,如果第二个参数为true,则返回一个变量中储存,不直接输出 mixed highlight_string ( string str [, bool return] )对一个字符串高亮,第二个参数同上 ☆ 加密 string md5 ( string str [, bool raw_output] )返回32位的十六进制字符串,如果第二个参数为true,则反回16位的二进制字符串 ☆ 路径/URL array pathinfo ( string path [, int options] ) 返回文件路径的信息,pathinfo() 返回一个联合数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。 可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。 例子 1. pathinfo() 例子 上例将输出: /www/htdocs index.html html array parse_url ( string url ) 解析 URL,返回其组成部分 array parse_url ( string url ) 此函数返回一个关联数组,包含现有 URL 的各种组成部分。如果缺少了其中的某一个,则不会为这个组成部分创建数组项。组成部分为: · scheme - 如 http · host · port · user · pass · path · query - 在问号 ? 之后 · fragment - 在散列符号 # 之后 此函数并 不 意味着给定的 URL 是合法的,它只是将上方列表中的各部分分开。parse_url() 可接受不完整的 URL,并尽量将其解析正确。 注: 此函数对相对路径的 URL 不起作用。 例子 1. parse_url() 示例 $ php -r 'print_r(parse_url("http://username:password@hostname/path?arg=value#anchor"));' Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor ) $ php -r 'print_r(parse_url("http://invalid_host..name/"));' Array ( [scheme] => http [host] => invalid_host..name [path] => / ) string dirname ( string path ) 返回路径中的目录部分,给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。 在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。 例子 1. dirname() 例子 string basename ( string path [, string suffix] ) 返回路径中的文件名部分, 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。 在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符。在其它环境下是斜线(/)。 例子 1. basename() 例子

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 7 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档