PHP学习笔记2 - 文件、数组、字符串
文件
站点路径
$DOCUMENT_ROOT = $_SERVER[‘DOCUMENT_ROOT’]
打开/关闭文件、文件信息等
fopen() 打开文件 读、写、读写、追加等模式
fclose() 关闭文件
file_exist()
filesize()
unlink() 删除文件
写文件
fwrite() = fputs() 写入一个字符串,可控制写入长度
file_put_contents() 不需要先调用fopen() 常用于从FTP或HTTP获取文件
读文件
行
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) //1到10的数组
$test3 = range(1, 10, 2) //1到10的奇数数组
$test4 = range(10, 1, -1) //10到1的数组
$test5 = range(‘a’, ‘z’) //字母a到z的字符数组
追加元素
$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 />’;
}
欢迎交流前端开发技术!