PHP 总结
PHP基础
PHP概述
PHP (全称:PHP: Hypertext Preprocessor,即"PHP:超文本预处理器") 是一种通用开源脚本语言
-
目前最流行的网站开发语言
-
在几乎所有的平台中都可以运行
-
很多的企业都在使用PHP作为开发语言
PHP介绍
-
PHP是一种类C语言
-
它混合了C、Java、Perl语言的特点
PHP语言规则
-
PHP脚本可放置于文档中的任何位置
-
PHP脚本以 结尾,语句以分号(; )结尾
-
PHP文件通常包含html标记 及PHP脚本代码,默认扩展名是php
<?php ∥/此处是PHP代码 ?>
PHP对大小写敏感
PHP注释
- PHP支持三种注释方法:
-
单行注释:// 和 #
-
多行注释:/* *
PHP 变量
PHP变量规则
PHP输出方法:echo
PHP五种数据类型
PHP运算符
- 算术运算符
- 字符串运算符
- 赋值运算符
- 递增递减运算符
- 比较运算符
- 逻辑运算符
- 三目运算符
PHP数组
数组概述
PHP数组介绍
-
PHP数组就是一组数据的集合 ,把一系列数据组织起来,形成一个可操作的整体
-
数组的每个实体都包含两项:键和值
-
PHP数组分为索引数组 和关联数组 两类
数组元素的键(key)和值(value)
-
数组也是变量,需要遵循变量的命名规则
-
每个数组元素都有一个标号,称为数组元素的键(key),也称索引或下标
-
每个数组元素都有一个值( value)
数取取值
通过键 (key)获取值(value)
<?php
$cars = array('Volvo','BMV','Toyota');
echo 'I like'.$cars[0].'</br>';
echo 'He likes'.$cars[1].'<br/>';
?>
数组类型
PHP数组分为两类
-
索引数组 :key为连续的整数(默认从0开始)
-
关联数组 :key为指定的值,通常为字符串
注意:无论哪种数组,使用前必须先创建,创建数组的基本方法是应用array() 函数
索引数组
- 创建索引数组
- 应用array() 函数
<?php $cars = array('Volvo','BMV','Toyota'); ?>
- 直接为数组各个元素赋值
<?php
$cars[0] = 'Volvo';
$cars[1] = 'BMV';
$cars[2] = 'Toyota';
?>
- 获得数组的长度
- count() 、**sizeof() ** 函数均返回数组的长度 (元素的个数)
<?php
$cars = array('Volvo','BMV','Toyota');
echo count($cars);
echo sizeof($cars);
?>
- 遍历索引数组
<?php
$cars = array('Volvo','BMV','Toyota');
for($i=0; $i<count($cars); $i++)
{
echo $cars[$i];
echo '<br/>';
}
?>
关联数组
- 创建关联数组
- 应用array()函数创建
<?php
$age = array('Bill'=>35,'Steve'=>37,'Peter'=>43);
$age['Bill']=
?>
- 直接为数组各个元素赋值
<?php
$age['Bill']=35;
$age['Steve']=37;
$age['Peter']=43;
?>
注意:键为字符串 时,要用 ' ' 括住,且区分大小写
- 遍历关联数组
<?php
$age = array('Bill'=>35,'Steve'=>37,'Peter'=>43);
foreach($age as $key=>$value)
{
echo '姓名='.$key.'年龄='.$value;
echo '<br>';
}
?>
多维数组
<?php
// 二维数组
$cars = array
(
array("Volvo",100,96),
array("BMW",60,96),
array("Toyota",110,100)
);
echo $cars[0][0];
?>
数组基本操作
增加或删除元素
- 通过赋值 ,增加数组元素
<?php
$arrays = array("age"=>25);
$arrays["name"]="ICQ";
?>
- 使用 array_push() 函数追加数组元素(入栈)
-
array_push() 语法:array_push(array, value1, alue2…)
-
函数的功能是在数组末尾插入一个或多个元素 ,用于以整数为键的数组。
<?php
$a=array("red","green");
array_push($a,"blue","yellow");
print_r($a);
?>
- 使用 **array_pop() ** 返回数组的最后一个元素出栈)
-
array_pop() 语法:array_pop(array)
-
函数是从数组末尾删除 一个元素,用于以整数为键的数组
<?php
$a = array("red","green","blue");
array_pop($a);
print_r($a);
?>
数组排序
PHP函数
函数定义
- 函数介绍:函数是由多行代码组成的代码块,用于完成某项任务。一般情况下,一个任务需要多次执行,需要定义函数
<?php
function test()
{
echo 'hello word';
}
$test();
?>
函数传参
-
传参介绍
-
在调用函数时需要向函数传递参数,被传入的参数称为实参,函数定义的参数称为形参
-
函数间传递参数的形式有三种:1、按值传递 2、按引用传递(传地址) 3、默认参数
-
按值传递
-
将实参的值复制到对应形参中,在函数内部针对形参进行操作的结果不会影响到实参 ,即函数返回后,实参值不会改变。
<?php
function example($m)
{
$m = $m*5+10;
echo "in the function: ".$m;
}
$m = 1;
example($m);
echo "out the function: ".$m;
?>
//输出
in the function: 15
out the function: 1
-
默认参数
-
定义形参时,可以指定某个参数为可选参数 ,将可选参数放在参数列表末尾 ,并指定默认值
<?php
function example($m,$n="")
{
$m = $m+$n;
echo "in the function: ".$m;
}
example(5,6); // 输出 in the function: 11
example(5); // 输出in the function: 5
?>
-
函数返回值
-
使用 return 语句返回值;注意:函数定义时不需要声明返回值
<?php
function example($m)
{
$m = $m*5+10;
return $m;
}
echo example(1); // 输出 15
?>
函数作用域
作用域概述
-
局部作用域
-
全局作用域
-
PHP拥有函数作用域:每个函数创建一个新的作用域
-
作用域决定了这些变量的可访问性(可见性)
-
函数内部定义的变量从函数外部是不可访问的(不可见的)
全局变量
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; //输出15
?>
PHP标准函数库
- 变量函数库
- 字符串函数库
- 时间日期函数
PHP类和对象
创建类和实例化对象
<?php
class Persion
{
var $name;
function say()
{
echo 'myname is'.$this->name;
}
}
$xm = new Persion; //实例化对象
$xm->name = '小明'; //对象属性赋值
$xm->say(); //访问对象成员方法
?>
$this关键字
-
$this关键字是用来访问当前对象中的对象属性和对象方法的系统变量
-
可以理解为$this是在对象中特殊的一种使用构造函数和变量 的方法
-
注意:$this仅能在当前对象 中使用
PHP表单处理
GET VS POST
服务端数据接收
- PHP中有三种变量进行数据的接收
示例代码
<html>
<body>
<form action=" " medthod="POST">
username:<input type="text" name="name">
passwoed:<input type="password" name="pass">
<input type="submit" name="submit" value="提交">
</form>
<body>
</html>
<?php
echo "username: ".$_POST["name"];
echo "password: ".$_POST["pass"];
?>
PHP文件操作
文件访问技术
-
PHP可对服务器端的文件或文件夹进行操作
-
对文件的操作包括创建 文本文件、写入 文本文件、读取 文本文件等
-
对文件夹的操作包括创建、复制、移动或删除 文件夹等
-
对文件操作的一般流程
相关函数
-
打开文件
-
使用 **fopen() ** 打开文件。
-
文件读取
-
使用fread() 读取指定长度的字符串。
-
使用 **fgets() ** 读取文件一行内容。
-
使用**feof() ** 检测是否已到达文件末尾。
-
文件写入
-
使用 **write() ** 函数来写入数据。
-
关闭文件:
-
使用 **fclose() ** 关闭文件。
打开文件
fopen() ** 函数**
-
fopen() 函数用来打开文件,打开成功返回一个文件句柄,失败返回false。
-
语法格式为:fopen(string, filename, string, mode)
-
举例:
<?php
$file = fopen("c:\\data\\info.txt","r");
$file = fopen("/home/file.txt","wb");
?>
- fopen() 函数 mode 可选值
读取文件
文件读取常用函数
-
fread() 函数
-
可读取指定长度的文件内容,file为文件句柄
-
语法格式:fread(file, length)
-
说明:file:规定要读取打开的文件 length:规定要读取的最大字节数
-
举例:
<?php
$file = fopen("test.txt","r");
$str = fread($file,filesize("test.txt")); // 读取整个文件
fclose($file);
?>
-
fgets() 函数
-
用来读取文本文件的一行
-
语法格式:fgets(file) file:规定要读取打开的文件、
-
举例:
<?php
$file = fopen("test.txt","r");
while(!feof($file))
{
$str = fgets($file); //读取文件中的一行,读取完成后指针会指向下一行
echo $str."<br>";
}
fclose($file);
?>
-
**file_get_contents() ** 函数
-
file_ get_contents() 无须经过打开文件及关闭文件操作 就可读取文件中的全部内容
-
语法格式:
- 举例:
<?php
echo file_get_contents("test.txt");
?>
写入文件
-
**fwrite() ** 函数
-
可以将一个字符串写入到文本文件中
-
语法格式:fwrite(file, string, length)
-
说明:file:必需,规定要写入的文件;string:可选,规定写入文件的字符串;length:可选,规定写入的最大字节数;
-
举例:
<?php
$file = fopen("test.txt","w");
fwrite($file, "Hello World!!");
fclose($file);
?>
- file_put_contents() 函数
<?php
$file = 'log.txt';
$content = "hello word";
if(file_put_contents($file, $content, FILE_APPEND))
{
echo "success<br>";
}
echo file_get_contents($file);
?>
关闭文件
-
**fclose() ** 函数
-
文件内容读写结束后,必须关闭文件 , fclose0函数用来关闭文件。
-
语法格式:fclose($file)
注意:文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的
- 举例:
<?php
$file = fopen("test.txt", "r");
// 执行一些代码
fclose($file);
?>
复制/移动/删除 文件
文件的复制和删除
<?php
if(copy('test.txt','/data/bak.txt')) //复制文件
echo '文件复制成功';
else
echo '文件复制失败';
unlink('./test.txt'); // 删除文件
?>
获取文件属性
<?php
$file= 'test.txt';
echo "<br>文件名:".basename($file);
$patharr = pathinfo($file);
echo "<br>文件扩展名: ".$patharr['extension'];
echo "<br>文件属性: ".filetype($file);
echo "<br>路径: ".realpath($file);
echo "<br>大小: ".filesize($file);
echo "<br>创建日期: ".date('Y-m-d H:i:s',filectime($file);
?>
目录基本操作
PHP操作mysql
PHP访问 MySQL数据库的步骤
-
MySQL是一款广受欢迎的数据库,由于它是开源的半商业软件,所以市场占有率高
-
备受PHP开发者的青睐,一直被认为是PHP的最佳搭档,且PHP具有强大的数据库支持能力
-
PHP访问 MySQL数据库的般步骤如下:
PHP连接数据库相关函数
- mysql_connect() 函数
- mysql_select_db() 函数
- mysql_query() 函数
- mysql_fetch_array() 函数
- mysql_fetch_object() 函数
- mysql_fetch_row() 函数
- mysql_num_rows() 函数
- mysql_close() 函数
示例代码
连接
$conn = mysql_connect(localhost,'root','root');
$result = mysql_select_db('liuyanban',$conn);
插数据
$sql = insert into liuyan(title,content) values('test','test');
if ($result)
{
echo "<script>alert('insert data success!!!');window.history.back(-1)</script>";
}
mysql_close();
查数据
$selectsql = 'select * from liuyan order by id desc';
$result = mysql_query($selectsql,$conn);
//var_dump($result);
echo 'username:'.$_SESSION['user'].'<br>';
while($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
//var_dump($row = mysql_fetch_array($result,MYSQL_ASSOC));
echo 'title:'.$row['title'].'<br>';
echo 'content:'.$row['content'].'<br>';
}
mysql_close();
PHP文件包含
包含的概念
include() 函数
require() 函数
include_once() 函数
require_once() 函数
include 与 require 的区别
PHP会话控制
会话控制概述
PHP实现会话控制
Cookie和Session用法
Cookie
Cookie概述
带有Cookie信息的请求过程
设置Cookie
接收和处理Cookie
删除Cookie
Session
Session概述
Session工作原理
session实现简单会话
Cookie和Session异同点