PHP入门笔记(2) 文件与数组

No Comments

第二章 数据的存储与检索

这一章主要讲的就是读写文件。

打开文件:fopen()

fopen()有4个参数,分别是1234

  1. 文件名,其实也就是路径,可以是一个url,可以是一个绝对路径。(可以使用$_SERVER['DOCUMENT_ROOT']获取网站的根目录,unix系统只支持“/”路径)。
  2. 打开模式,r 只读,w 只写,x 慎重写,a 追加,b 二进制(推荐一直带着这个选项)。w&x的区别是,如果文件已存在,w则删除文件所有内容,x产生一个警告错误。
  3. 是否在include_path目录里搜索文件。
  4. 可选参数

* 打开文件可能遇到文件访问权限问题。

写文件:fwrite()/fputs()

fwrite()有3个参数,分别是123

  1. 文件指针。
  2. 写入的字符串。
  3. 写入字符串的最大长度(常用来解决跨平台的兼容性问题)。

关闭文件:fclose();

加锁: flock()

  • LOCK_SH 读锁定,其他人可以读但不能写
  • LOCK_EX 写锁定,其他人不可以读写
  • LOCK_UN 解锁
  • LOCCK_NB 防止请求加锁时发生阻塞

其他文件相关函数

  • feof():文件是否读完。
  • fgets(1,2):获取一行数据,2为获取的最大字节数。
  • fgetss():可以过滤掉所有的html和php标记。
  • reanfile():直接读取整个文件并直接输出。
  • passthru():需要先fopen();
    • file():直接读取文件,返回一个数组,数组的每一个元素都是文件的一行。
  • file_exists():文件是否存在
  • filesize():返回文件大小
  • unlink():删除文件
  • ftell():返回指针在文件的位置
  • frewind():将指针指向文件头

本章的例子似乎运行不了,问题就是指定的文件路径的“..”无法解析。而且fopen()无法新建文件夹。

第三章 使用数组

php的数组与java和c以及c++最大的不同就是可以使用自定义的索引,但这一特性目前似乎用处不大。这一章的重点是介绍一些数组函数的使用。

初始化及引用数组

  • $products = array(‘Tires’,'Oil’,'Spark Plugs’);
  • $odds = range(1,10,2);//数组从1到10步进2
  • $prices = array(‘Tires’=>100,’Oil’=>10);//自定义索引
  • $products[0] //引用数组
  • $prices['Tires'] 使用非默认索引时的循环也是很有意思的,这里就不过多说明了。

多维数组,其实就是普通的多维数组。

数组排序

sort();从小到大排序。asort();按值排序。ksort();按关键字排序。rsort(),arsort(),krsort()为反向排序。

usort();多维数组排序。需要定义一个比较函数。例如,usort($abc,’compare’);compare就是一个比较函数,他返回0表示同样大,1表示第一个比第二个大,-1正好相反。这个比较象java里面的类组成的数组排序,需要实现一个compareable接口。

shuffle();对数组元素进行随即排序。

其他关于数组的函数

array_reverse();反向数组。

还有好多函数,这里就不写了。官方网站的函数参考里面都有。

顺便说一下,我发现www.php.net也就时php的官方网站是一个很好的学习站点,值得推荐。

Leave a Reply