9.文件处理
9.1打开文件resource fopen(filename, mode),其中mode是打开文件的方式,mode包括r只读、r+只读、w、w+、 x、x+;关闭文件bool fclose(resource handle)
9.2读写文件
int readfile(filename);读入一个文件并将其写入输出缓冲
array file(filename);将文件内容按行读入数组中
string file_get_contents(filename);将文件内容读入一个字符串
string fgets(handle);读取一行数据
string fgetss(handle);读取一行数据并且忽略HTML和PHP标记
string fgetc(handle);读取一个字符
string fread(hanle, length);读取任意长度数据
int fwrite(handle, str);把str写入handle
10.目录处理
10.1打开关闭目录
resource opendir(path);打开目录
void closedir(handle);关闭目录
10.2浏览目录 array scandir(directory)
11.文件管理
11.1文件上传
<table width="500" border="0" cellspacing="0" cellpadding="0">
<!-- 上传文件的form表单 -->
<form action="" method="post" enctype="multipart/form-data">
<tr>
<td width="150" height="30" align="right" valign="middle">选择上传文件:</td>
<!-- 上传文件域,类型为file -->
<td width="250"><input type="file" name="upfile" /></td>
<!-- 提交按钮 -->
<td width="100"><input type="submit" name="submit" value="上传" /></td>
</tr>
</form>
</table>
<?php
//处理表单返回结果
if(!empty($_FILES)){
foreach($_FILES['upfile'] as $name => $value){
echo $name.'='.$value.'<br>';
}
}
?>
11.2文件上传函数
<form action="" method="post" enctype="multipart/form-data" name="form">
<input name="up_file" type="file" />
<input name="submit" type="submit" value="上传" />
</form>
<?php
if(!empty($_FILES['up_file']['name'])){
$fileinfo = $_FILES['up_file'];
if($fileinfo['size'] < 1000000 && $fileinfo['size'] > 0){
move_uploaded_file($fileinfo['tmp_name'], $fileinfo['name']);
echo '上传成功';
}else{
echo '上传失败';
}
}
?>
11.3多文件上传
<form action="" method="post" enctype="multipart/form-data">
<table id="up_table" border="1" bgcolor="f0f0f0">
<tbody id="auto">
<tr id="show">
<td>上传文件</td>
<td><input name="u_file[]" type="file"></td>
</tr>
<tr>
<td>上传文件</td>
<td><input name="u_file[]" type="file"></td>
</tr>
</tbody>
<tr>
<td colspan="4"><input type="submit" value="上传" /></td>
</tr>
</table>
</form>
<?php
if(!empty($_FILES[u_file][name])){
$file_name = $_FILES[u_file][name];
$file_tmp_name = $_FILES[u_file][tmp_name];
for($i = 0; $i < count($file_name); $i++){
if($file_name[$i] !=''){
move_uploaded_file($file_tmp_name[$i], $i, $file_name[$i]);
echo '上传成功';
}
}
}
?>
12.面向对象
12.1类的实例化 对象名 -> 成员方法
12.2类常量 const PI = 3.1314
12.3构造方法 void_construct($xxx, ...){ $thisxxx -> = $xxx; ... }
12.4析构方法 void_destruct(){}
12.5操作符 :: 格式:关键字::变量名/常量名/方法名
关键字:parent:可以调用父类中的成员变量、成员方法、常量
self:可以调用当前类中的静态成员、常量
类名:调用本类中的变量、常量、方法
12.6克隆对象clone、克隆方法_clone()
$book1 = new Book();
$book2 = $book1;//2和1指向同一个new,所以对2的修改,就是对1的修改
$book2 = clone $book1;//相当于$book2 = new Book();1和2没关系
13.PHP加密技术
13.1 crypt(str, str salt)str是被加密的字符串,salt是干扰串,salt可选,单项加密,不能还原
13.2 md5(str, bool raw_output)raw_output如果设置为true,则输出一个二进制形式的密文,否则输出一个128位的密文,该算法只与字节的值有关
13.3sha1(str, raw_output)返回一个40位的十六进制数,后面如果为true,返回一个20位的二进制数
13.4加密扩展库Mcrypt和Mhash
14.PHP操作Mysql
14.1连接并选择
<?php
$host = "localhost";
$user = "root";
$password = "123456";
$dbName = "db_user";
$connID = mysqli_connect($host, $user, $password)
if(mysqli_select_db($connID, $dbName)){
echo "<script type='text/javascript'>alert('数据库选择成功');</script>";
}else{
echo "<script type='text/javascript'>alert('数据库选择失败');</script>";
}
?>
14.2执行sql $result = mysqli_query($conn, "insert into tableName values(...)");
14.3将结果集返回数组 mysqli_fetch_array(result);
从结果集中获取一行作为对象 mysqli_fetch_object(result);
从结果集中获取一列作为枚举数组 mysqli_fetch_row(result);
从结果集中获取一行作为关联数组 mysqli_fetch_assoc(result);
获取记录数 mysqli_num_rows(result);
释放内存 mydqli_free_result(result);
关闭连接 bool mysqli_close($conn);
15.PDO数据库抽象层
15.1连接数据库
<?php
header("Content-Type:text/html;charset=utf-8");
$dbms = 'mysql';
$dbName = 'db_data';
$user = 'root';
$pwd = '123456';
$host = 'localhost';
$dsn = "$dbms:host=$host;dbname=$dbName";
try{
$pdo = new PDO($dsn, $user, $pwd);
echo "PDO连接成功";
}catch(Exception $e){
echo $e->getMessage()."<br>";
}
?>
15.2 PDO执行SQL语句
<?php
header("Content-Type:text/html;charset=utf-8");
$dbms = 'mysql';
$dbName = 'db_data';
$user = 'root';
$pwd = '123456';
$host = 'localhost';
$dsn = "$dbms:host=$host;dbname=$dbName";
//解决向数据库传数据时中文乱码问题的三个方法
//1.添加第四个参数array
//$pdo = new PDO($dsn, $user, $pwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"));
//2.query()
//$pdo = new PDO($dsn, $user, $pwd);
//$pdo->query('set names utf8');
//3.exec()
$pdo = new PDO($dsn, $user, $pwd);
$pdo->exec('set names utf8');
$query = "insert into tb_demo(ID, name) values(6, '一')";
$result = $pdo->prepare($query);
$result->execute();
$code = $result->errorCode();
echo "数据添加成功";
?>
15.3 PDO事务处理
在$query之前加 $pdo->begin Transaction();开启事务
成功后加 $pdo->commit();提交
在catch里加 $pdo->rollBack();回滚