> For the complete documentation index, see [llms.txt](https://note.niefee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://note.niefee.com/summary/2/2016-nian-2-yue-22-ri.md).

# 2016年2月22日

## php

**文件头声明**

```
header("content-type:text/html;charset=utf-8");
```

### 函数

**自定义函数**

```php
//从1打印到5
function echoNum(){
    for($i=1;$i<=5;$i++){
        echo $i."<br/";
    }
}

echoNum();

function demo(){
    return 11;
}

$n=demo();//不会打印，可以给变量赋值。
echo $n;
```

**递归函数**

自己调用自己； 递归函数必须有终止的情况。 常用在php可以删除目录

```php
function sum($n){
    if($n==1){
        return 1;
    }else{
        return $n+sum($n-1);
    }
}

$m=sum(5);
/*
*$m=sum(5);
*   return 5+sum(4);
*       return4+sum(3);
*           return3+sum(2);
*               return2+sum(1);
*                   return 1;
 */
```

**变量的引用传值** 引用传值：php允许多个变量指向一个内存空间。 引用传值：传递内容；

```php
$a=3;
$b=$a;
$a=4;
echo $b;//3,值传递，传递内容

---

$a=3;
$b=&$a;//引用传值符号,将地址传递$b;
$a=4;
echo $b;//4
```

### 文件函数库

php可以用来操作文件；

* fopen(string $filename,string $mode)

**打开方式**

| mode | 说明                                                                                                                                           |
| ---- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| 'r'  | 只读方式打开，将文件指针指向文件头。                                                                                                                           |
| 'r+' | 读写方式打开，将文件指针指向文件头。                                                                                                                           |
| 'w'  | 写入方式打开，将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。                                                                                                    |
| 'w+' | 读写方式打开，将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。                                                                                                    |
| 'a'  | 写入方式打开，将文件指针指向文件末尾。如果文件不存在则尝试创建之。                                                                                                            |
| 'a+' | 读写方式打开，将文件指针指向文件末尾。如果文件不存在则尝试创建之。                                                                                                            |
| 'x'  | 创建并以写入方式打开，将文件指针指向文件头。如果文件已存在，则 fopen() 调用失败并返回 FALSE，并生成一条 E\_WARNING 级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的 open(2) 系统调用指定 O\_EXCL或O\_CREAT 标记是等价的。 |

* int fwrite ( resource $handle , string $string \[, int $length ] )

```php
$fileName="pph.txt";
$handle=fopen($fileName,"w+");
fwrite($handle,"feniaf");
fclose($handle);
```

* bool fclose ( resource $handle )

fclose — 关闭一个已打开的文件指针

* string fread ( resource $handle , int $length )

fread — 读取文件（可安全用于二进制文件）

* int filesize ( string $filename )

filesize — 取得文件大小

```php
$fileName="a.txt";
$handle=fopen($fileName,"a+");
$num=filesize($fileName);
$str=fread($handle,$num);
echo $str;
fclose($handle);
```

**序列化数据**

序列化以后的数据，可以放进文件中，方便其他文件的读取与调用。

* string serialize ( mixed $value )

产生一个可存储的值的表示

```php
$st="ab";
echo serialize($st)."<br/>";
//s:2:"ab";类型：长度：值

$st1=22;
echo serialize($st1)."<br/>";
//i:22;类型：值

$st2=3.14;
echo serialize($st2)."<br/>";
//d:3.1400000000000001;类型：近似值

$st3=true;
echo serialize($st3)."<br/>";
//b:1;类型：1,0表示的值

$st4=array(123,"fdf","df");
echo serialize($st4)."<br/>";
//a（类型）:3(长度）:{i（下标类型）:0（下标值）;i:123;i:1;s:3:"fdf";i:2;s:2:"df";}；
```

* mixed unserialize ( string $str )

对单一的已序列化的变量进行操作，将其转换回 PHP 的值。

**文件包含**

* include(被包含文件的URL)
* include\_once(被包含文件的URL)//只包含一次

如果被包含文件找不到，提示的错误是一个警告，后面的代码继续执行。

* require(被包含文件URL)
* require\_once(被包含文件URL)

如果被包含文件找不到，提示的错误是一个致命，后面的代码不继续执行。

* once

只包含一次。

* set\_include\_path()

设定默认的包含路径。
