PHP文件操作数组字符串_第1页
PHP文件操作数组字符串_第2页
PHP文件操作数组字符串_第3页
PHP文件操作数组字符串_第4页
PHP文件操作数组字符串_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文件操作函数及功能fopen( - 打开一个文件,并将其包含在一个指针中$handle = fopen("/home/rasmus/file.txt", "ab"fwrite( - 文件写入fwrite($handle, $somecontent;fclose( - 关闭文件(将打开文件的指针传递即可fclose($handle;feof( - 测试是否到文件结尾(若到达结尾则返回truewhile (!feof($handlefgets( - 读取一行并返回指定个数字符(每次返回最多4096个字符 $buffer = fgets($handle, 40

2、96; /返回4096-1个字符fgetss( - 和fgets( 相同,只是从读取的文本中去掉任何HTML 和PHP 标记fgetcsv( - 从指定文件中读取一行,在遇到有定界符的地方分行;返回数组$data = fgetcsv($handle, 1000, "," /若遇到逗号(,就分行readfile( - 读取整个文件,并显示,之后自动关闭此文件fpassthru( - 输出文件指针处的所有剩余数据;需要先打开文件,然后将文件指针传递$fp = fopen($name, 'rb'fpassthru($fp;file( - 将文件作为一个数组返回;数

3、组中的每个元素都是文件中相应的一行,包括换行符在内fgetc( - 只传递文件指针,每次读一个字符fread( - 读取指定长度的字符(一次最多读取8192个字符 while (!feof($handle $contents .= fread($handle, 8192; /因为每次最多读取8192字符,需要不断的读取unlink( - 删除文件rewind( - 将文件指针复位到文件开始fseek( - 将文件指针定位到指定位置fseek($fp, 0; /相当于rewind(ftell( - 告诉当前文件指针的位置echo ftell($fp;flock( - 锁定/解锁文件flock($

4、fp, LOCK_EX; /独占锁定(写入的程序,flock($fp, LOCK_UN; /释放锁定数组PHP中数组索引默认值为0range(- 建立一个包含指定范围单元的数组,第三个参数为步进值.可以产生逆序的数组foreach (range(0, 12 as $number /array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12echo $number;foreach (range(0, 100, 10 as $number /array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100echo $number;创

5、建数组:$arr = array(abc,xyz;$arr20 = free;$arr21 = play;$arr = array(5 => 1, tree => 512; /带键名的分配方式直接组数组赋值会增加到末位$arr = array(abc,xyz; /建立arr数组,有两个元素$arr = 128; /这一行将把128加入到arr数组的末位,即arr2为128专为数组设计的循环语句foreachforeach ($arr as $key => $valueecho "Key: $key; Value: $value"list(,each(- 遍

6、历数组$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry'reset($fruit; /将数组的内部指针指向第一个单元while (list($key, $val = each($fruitecho "$key => $valn"单用each(时:while( $element = each($arr echo $element key ; /使用特定的关键字key访问键名ec

7、ho $element value ; /使用特定的关键字value访问值unset(- 删除数组中的元素unset($arr5; /删除键名为5的值(非第6个元素,除非是默认的无键名的数组unset($arr; /删除整个数组多维数组,PHP并未限制维数,可以创建三维/四维/五维等多维数组$multarr = array(array('code'=>145,'design'=>782,'other'=>'Nona',/千万注意这儿有逗号(,分割array('c'=>144,'B&#

8、39;=>'greed',0=>'free'for($i=0 ; $i<2 ; $i+ /全部打印出来foreach( $multarr$i as $k => $v echo" Key : $k => Value : $v"echo " -"数组排序sort( - 从小到大排序(默认,这将删除原有的键名而不仅是重新排序;第二个参数指定按字母/数字还是正常排序$arr = array ( '1'=>'ability', 'ab'=>&#

9、39;tire', "str22"=>'buy'排序之后所有键名将全部被删除:0 => ability /原键名是11 => buy /原键名是ab2 => tire /原键名是str22在对含有混合类型值的数组排序时要小心,因为sort( 可能会产生不可预知的结果。asort(- 按值排序,保留键名顺序(单元的索引关系不变ksort( - 对数组按照键名排序,保留键名到数据的关联对应的反向排序函数(降序排列:rsort(arsort(krsort(多维数组排序(亦可用于一维数组排列,需要提供用户函数usort(uasort(

10、uksort(多维数组反向排序只需要更改用户自定义函数,故没有相应的独立函数.shuffle(- 将数组打乱array_reverse(- 返回一个单元顺序相反的数组explode(使用一个字符串分割另一个字符串$pizza = "piece1 piece2 piece3 piece4 piece5 piece6"$pieces = explode(" ", $pizza; /分隔的字符是空格( echo $pieces0; / piece1echo $pieces1; / piece2current(/pos( 返回数组中的当前单元each(返回数组中

11、当前的键/值对并将数组指针向前移动一步(先返回值再向前移动each(常与list(搭配使用遍历一个数组next( - 返回数组内部指针指向的下一个单元的值(先移动再返回值reset( - 指向第一个元素end( - 指向最后一个元素prev(- 返回数组内部指针指向的前一个单元的值(先移动再返回值可以利用end(/prev(反向遍历一个数组array_walk(- 对数组中的每个成员应用用户函数用户函数中第一个参数是数组的值,第二个参数是数组的键名,第三个是自定义提供的.若提供了第三个参数,则在调用array_walk(时亦需要传递第三个参数自定义可以改变数组的值(在第一个参数前加&

12、符号即可,但不能改变键名(第二个参数前加& 是无效的$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"function test_alter(&$i, $k, $p /要改变数组的值,则给自定义函数的第一个参数加上&$i = "$p: $i"echo "

13、; $k.$i"array_walk($fruits, 'test_alter', 'O'while (list($k,$v = each($fruits /输出数组时,值前全部添加了”O:”echo " .$k = > $v"count(/seizeof( 计算数组中的单元数目或对象中的属性个数array_count_values(统计数组中所有的值出现的次数(即数组的基数集,返回值是一个数组,包含频率(键名和次数(值.extract( 从数组中将变量导入到当前的符号表.相当于产生了与数组键名相同的变量,变量的值是数组的值(

14、此函数第二/三个参数相对较复杂,参见PHP手册$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"extract($fruits;echo "$a $b $c $d" /打印结果为:orange banana apple lemon字符串处理trim( - 删除字符串前/后的空格和换行/

15、制表符等(不删除中间的空格等 ltrim(,rtrim( - 仅删除左边/右边所有的空格nl2br( - 将换行符替换为 ,因为换行符(n在浏览器中显示为一行,所以在浏览器要要换行必须要用 printf( - 可以用复杂的格式化输出文本( % 之后添加参数的位置并以$ 结束$num = 111;$location = 222;$format = 'The %2$s contains %1$d monkeys./ %2$ 代表引用第二个参数($location, $ 是结束符, s 指输出为字符串That's a nice %2$s full of %1$d monkeys.&#

16、39; /同理%1$d 指引用第一个参数($num, d 代表输出为数字printf($format, $num, $location; /第一个参数是$num,第二个参数是$locationsprint( - 与printf(相同,但它返回一个字符串,而printf(则直接输出到浏览器.注:以下4个函数不会改变原字符串的大小写,只返回一个改变过的字符串strtoupper( - 把所有字符全转换为大写strtolower( - 把所有字符全转换为小写ucfirst( - 把字符串的第一个字符转换为大写,余保持不变ucwords( - 把字符串中每个单词的第一个字母转换为大写,其余不变$str

17、 = "returns a STRING with the first character"echo " Original : $str" /Original : returns aSTRING with the first characterecho " strtoupper( : ".strtoupper($str; /strtoupper( : RETURNS ASTRING WITH THE FIRST CHARACTERecho " strtolower( : ".strtolower($str; /st

18、rtolower( : returnsa string with the first characterecho " ucfirst( : ".ucfirst($str; /ucfirst( : Returns aSTRING with the first characterecho " ucwords( : ".ucwords($str; /ucwords( : Returns ASTRING With The First Characterecho " Original : $str" /Original : returns aS

19、TRING with the first character (原始字符串并未被改变过滤字符串相关函数addslashes( 使用反斜线引用字符串(主要用在往数据库中存储时,为了安全性的考虑把特殊字符用反斜线( 进行转义注:目前的PHP 指令magic_quotes_gpc 默认为on,就是说在往数据库中存储时自动用 进行转义;可以使用函数get_magic_quotes_gpc( 进行检测。if (!get_magic_quotes_gpc( $lastname = addslashes($_POST'lastname' /若检测到指令magic_quotes_gpc 为of

20、f ,则对存储字符进行转义 else $lastname = $_POST'lastname' /若指令magic_quotes_gpc为on, 则直接进行存储stripslashes( - 若指令magic_quotes_gpc为on, 从数据库中取出字符进行输出时需要调用此函数把多余的 删除注: 当从数据库中读取数据时, stripslashes( 函数可能总会用到(因为安全性考虑,写入时一定都加入了 ,所以读取时要删除掉explode( - 使用一个字符(串分割另一个字符串implode( -使用一个字符(串连接一个数组中的所有元素$str = "Forexam

21、pletoseehowitworks"$a=explode('',$str; /$a是一个数组了,包含(For,example,to,see,how,it,works这些元素foreach ($a as $becho " $b"$b = implode('&',$a; / $b是另一个用& 把数组$a连接起来的新字符串:For&example&to&see&how&it&worksecho " $b"strtok( - 与explode相似,但每次取

22、出一个字符,返回值是字符串而不是数组.分隔符可以传递多个,分隔时按单个的分隔符对字符串进行分隔substr( - 返回从指定位置开始的字符串;第2个参数是起始位置(正数时或者得到尾部的一个字符串(负数时,长度为负数的绝对值,第3个参数是长度(正数时或者结束的位置(负数时$rest = substr("abcdef", 0, 3; /"abc" 从第1个字符开始,长度为3个字符echo " $rest"$rest = substr("abcdef", -4, 2; /"cd" 从倒数第4个开始,返

23、回2个字符echo " $rest"$rest = substr("abcdef", 0, -1; /"abcde" 从第1个字符开始到倒数第1个(不含倒数第1个字符结束echo " $rest"$rest = substr("abcdef", 2, -1; /"cde" 从第3个(数组0起头到倒数第1个字符echo " $rest"$rest = substr("abcdef", 4, -4; /"" 从正数第5个

24、到倒数第4个,但因为不存在,返回空值echo " $rest"$rest = substr("abcdef", -3, -1; /"de" 从倒数第3个到倒数第1个echo " $rest"strcmp( - 比较两个字符串,区分大小写strcasecmp(- 比较两个字符串,不区分大小写strnatcmp( - 比较两个字符串,按”自然”排序(详细见手册,区分大小写strnatcasecmp( - 比较两个字符串, 按”自然”排序,不区分大小写strlen( - 返回字符串长度strstr(,strchr( -

25、从指定的字符处返回后面(或前面的字符串$email = 'name'$domain = strstr($email, ''echo $domain; / echo $user; / name (若指定第三个参数是false则返回前半部分的字符串stristr( - 与strstr(相同,仅不区分大小写strrchr( - 与strstr(相似,但返回最后找到的匹配字符串$email = 'nameexamplecom'$domain = strstr($email, ''echo " $domain" / examplecom$user = strrchr($email, ''echo " $user" / comstrpos( - 与strstr(类似,不过返回的是一个数字而不是字符串,数字为匹配项出现的位置strrpos( - 与strpo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论