# PHP 基础

# 常见问题

# IDEA 集成 PHP

安装插件:

  • PHP
  • PHP Remote Interpreter
  • Chinese PHP Documentation

# 解决 PHP 乱码

header("Content-Type: text/html;charset=utf-8");

# 数据类型

  • 整形 : Int
  • 浮点型 : Double
  • 字符串 : String
  • 空值 : NULL
  • 布尔型 : Bool
  • 数组 : array
  • 对象 : Object

# 转换数据类型

  • 转整形 : (int)
  • 转浮点型 : (float)
  • 转字符串 : (string)
  • 转数组 : (array)
  • 转对象 : (object)

# 数据库 MySQLi

提示

mysql_XXX 已在 PHP 7.0 以下版本废弃,请使用 mysqli_XXX

# 连接数据库

$conn = mysqli_connect("数据库地址","数据库用户名","数据库密码");
//判断是否成功连接上MySQL数据库
if(mysqli_connect_errno()){
  //如果连接错误,则抛出异常
 throw new Exception('数据库连接错误!');
}

# 查询数据

遍历表:

$sql = "SELECT *   FROM 表名";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 输出数据
    while($row = mysqli_fetch_assoc($result)) {
      echo  $row["字段名"] . $row["字段名"];
    }
} else {
    echo "没有数据";
}

过滤记录:

$result = mysqli_query($conn,"SELECT * FROM 表名 WHERE 字段名='值'");

while($row = mysqli_fetch_array($result)){
    echo $row['字段名'];
    echo "<br>";
}

# 插入数据

$sql = "INSERT INTO 表名 (表项1, 表项2) VALUES ('值1', '值2')";

if (mysqli_query($conn, $sql)) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

# 插入多条数据

$sql = "INSERT INTO 表名 (表项1, 表项2) VALUES ('值1', '值2')";
$sql .= "INSERT INTO 表名 (表项1, 表项2) VALUES ('值1', '值2')";
$sql .= "INSERT INTO 表名 (表项1, 表项2) VALUES ('值1', '值2')";

if ($conn->multi_query($sql) === TRUE) {
    echo "新记录插入成功";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

# 修改数据

$sql = "UPDATE 表名 SET 字段名=值 WHERE 字段名='值'";

if (mysqli_query($conn, $sql)) {
    echo "数据修改成功";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

# 删除数据

$sql = "DELETE FROM 表名 WHERE 字段名='值'";

if (mysqli_query($conn, $sql)) {
    echo "数据删除成功";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

# 取执行影响行数

mysqli_affected_rows($数据库对象)

# 数据库 PDO

# 连接数据库

$PDO对象 = "数据库类型:host=数据库地址;dbname=数据库名称";
$数据库对象 = new PDO($PDO对象,'数据库用户名','数据库密码');

提示

数据库类型可取mysql

# 文件读写

提示

一定记得关闭文件,否则会出现一些奇怪的问题

# 打开文件

$文件对象 = fopen(文件路径,"打开方式");

打开方式(字符串)

  • r : 只读
  • w : 只写
  • a : 在文件末尾附加
  • r+ : 读写(先读后写)
  • w+ : 读写(先写后读)
  • b : 二进制(一般与 w、r 混用)

# 读入文件

// 全部读取
$全部内容 = fread($文件对象,最大长度);
// 读取文件一行内容
$一行内容 = fgets($文件对象);
// 读取文件一行内容(去除HTML、PHP标记)
$一行内容 = fgetss($文件对象);
//讲文件读取到数组中
$全部内容数组 = file();

# 写入文件

//写入字符串
fwrite($文件对象,"字符串"[,写入长度]);

# 关闭文件

fclose($文件对象);

# file_get_contents

无需经过打开文件及关闭文件操作即可读取文件内容

$str = file_get_contents("路径");
echo nl2br($str);

# file_put_contents

无需经过打开文件及关闭文件操作即可写入文件内容

file_put_contents("路径",数据[,写入方式]);

写入方式():

  • FILE_APPEND : 追加数据

# 移动文件指针

移动文件指针到文件的开头

rewind($文件对象);

返回文件指针的当前位置

ftell($文件对象);

移动文件指针到指定位置

fseek($文件对象,int 位置[,起始位置]);

起始位置(默认为当前位置):

  • 0 : 文件开头
  • 1 : 当前位置
  • 2 : 文件末尾

# 文件及目录操作

# 文件操作

复制文件

copy(源文件路径,目标路径);

删除文件

unlink("文件路径");

重命名文件

rename(旧文件名,新文件名);

判断文件/文件夹是否存在

file_exists(文件名);

判断指定路径是否为文件

is_ifle("路径");

# 目录操作

创建目录

mkdir("路径");

删除目录

目录必须为空目录

rmdir("路径");

取当前文件所在目录

getcwd();

改变当前目录

chdir("路径");

打开目录

$目录指针 = opendir("路径");

关闭目录

closedir();

将目录指针指向目录开头

rewinddir("路径");

遍历目录

$目录 = readdir("路径");

以数组形式遍历目录

$目录数组 = scandir("路径",1);

# 文件属性

获取文件大小

$文件大小 = filesize("路径");

获取文件类型

$文件类型 = filetype("路径");

获取文件创建时间

$创建时间 = filectime("路径");

获取文件修改时间

$修改时间 =  filemtime("路径");

获取文件物理路径

$物理路径 = realpath("路径");

获取文件路径、文件名信息

以数组形式

pathinfo("路径");

获取文件的文件名信息

$信息 = hasename("路径");
最后更新: 2020/9/15 19:42:22