PHP笔记(二)核心技术

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();回滚

猜你喜欢

转载自blog.csdn.net/zhulurensheng/article/details/79037496