PHP学习笔记2 - 文件、数组、字符串

文件

 

站点路径

 

$DOCUMENT_ROOT = $_SERVER[‘DOCUMENT_ROOT’]

 

打开/关闭文件、文件信息等 

 

fopen() 打开文件 读、写、读写、追加等模式

 

fclose() 关闭文件

 

file_exist()

 

filesize()

 

unlink() 删除文件

 

写文件

 

fwrite() = fputs() 写入一个字符串,可控制写入长度

 

file_put_contents() 不需要先调用fopen() 常用于从FTPHTTP获取文件

 

读文件

 

 

feof() 判断文件末尾

 

fgets() 读文件,可控制读入长度

 

fgetss() 可过滤字符,常用于读取别人所编写的文件(出于安全考虑)

 

fgetcsv() 一行数据中的用分隔符进行分割

 

文件

 

readfile() 无需fpoen(),打开文件输出到浏览器再关闭

 

fpassthru() 需要先调用fopen()

 

file() 返回行数据数组

 

字符

 

fgetc()

 

fread() 读取任意长度字节

 

文件定位

 

rewind() 复位文件指针到开始

 

fseek() 指向文件某个位置

 

ftell() 返回指针字节位置

 

文件锁定

 

flock() 文件加锁/解锁

 

LOCK_SH 读操作锁 共享

 

LOCK_EX 写操作锁 互斥

 

LOCK_UN 释放锁

 

LOCK_NB 防止在请求加锁时发生阻塞

 

非线程同步的

 

数组

 

创建数组

 

$test = array(‘first’, ‘second’, ‘third’);

 

$test2 = range(1, 10) //110的数组

 

$test3 = range(1, 10, 2) //110的奇数数组

 

$test4 = range(10, 1, -1) //101的数组

 

$test5 = range(‘a’, ‘z’) //字母az的字符数组

 

追加元素

 

$test[3] = ‘forth’; //向数组test末尾添加新元素

 

array_push($test, ‘forth’)

 

foreach循环

 

foreach ($test as $ $current) {

         echo $current.’ ‘;

}

 

关键字

 

$test = array( ‘Tieres’ => 100, ‘Oil’ => 10, ‘Spark’ => 4);

foreach ($test as $key => $value) {

         ……

}

while ($element = each($test)) {

         echo $element[‘key’].’-‘.$element[‘value’];

}

reset($test);

while( list($user, $psw) = each($test) )

         echo ……

 

 

数组排序(升/降)

 

一般排序:sort() rsort()

 

value排序:asort() arsort()

 

key排序:ksort() krsort()

 

用户定义排序:usort() uasort() uksort()

例:

usort ($test, ‘compare’);

function compare($x, $y) {

         if ( $x[2] == $y[2] ) {

                   return 0;

}

else if ( $x[2] < $y[2] ) {

         return -1;

}

else {

         return 1;

}

}

 

反向排序:array_reverse() = rsort()

 

随机排序:array_rand() = shuffle()

 

内部指针

 

reset() 指针移动到第一个元素

 

end() 指针移动到最后一个元素

 

each() 返回值->前移

 

next() 前移->返回值

 

prev() next()相反

 

current() 返回当前值

 

pos() 返回当前位置值

 

对数组中的每一个元素进行操作

 

bool array_walk(array arr, string ‘func’, [mixed userdata]);

function func(value, key, userdata);

 

数组元素统计

 

count() = sizeof()

array_count_values($array) 返回一个包含频率表的相关数组

 

将数组转化成标量变量(可以为key添加前缀等来解决冲突)

 

$array = array( ‘key1’ => ‘value1’, ‘key2’ => ‘value2’, ‘key3’ => ‘value3’ );

extract($array);

echo “$key1 $key2 $key3”;

 

字符串

 

过滤空格

 

chop() = trim() 过滤除去空白字符及其他自定义字符

ltrim() rtrim()

 

格式化字符串

 

nl2br() HTML格式化

 

printf()

sprintf()

 

大小写处理:Strtoupper() Strtolower() Ucfirst() Ucwords()

 

特殊字符引号、反斜杆、NULL字符处理:addslashes() stripslashes()

 

魔术引号

 

分割和重组

 

explode()

implode() = join()

strtok()

例:

$token = strtok($test, ‘ ‘);

echo $token.’<br />’;

while($token != ‘’) {

         $token = strtok(‘ ‘);

         echo $token.’<br />’;

}

 

你可能感兴趣的:(学习笔记)