文章目录
前言
PHP是安全中需要掌握的一门语言,就这么一点儿时间教网络安全,不可能精通,这里就不要求你精通PHP,但是对于一些基础代码能够认识、能够编写那么就可以了。
同时,这里需要和HTML结合,如果你HTML还没懂,那么就需要加强一些HTML的技术能力了。值得一提的是,你看网页中那么多HTML代码,真的是人去写的么,那是不现实的,都是通过框架自动生成的,像现在的少儿编程不也是一样么。
第一章 PHP语言学习介绍
1、目前PHP在全球网页市场、手机网页市场还有为手机提供API(程序接口)排名第一。
2、PHP入门简单,学习入门易入手。
- 1
- 2
1.1 PHP部署安装环境
1.2 PHP代码工具选择
第二章 PHP代码基本语法
2.1 PHP函数知识介绍
<?php
phpinfo();
?>
- 1
- 2
- 3
代码信息解读说明:
代码编写注意事项:
2.2 PHP常量变量介绍
2.2.1 PHP变量知识:
<?php
$iphone7 = 5880;
$iphone7plus = 6088;
echo $iphone6 + $iphone7plus; //echo是在PHP里面最常用的一个输出、显示功能的命令
?>
- 1
- 2
- 3
- 4
- 5
变量的几个特点介绍:
变量的分类情况说明:
<?php
// 服务器读取的 编码设置
header('Content-type:text/html;charset=utf-8');
//定义了一个变量叫作$shu 将$shu这个变量的值设为字符串的biao
$shu = ‘biao’;
//定义了一个变量叫作$biao 将他的值设置为鼠标
$biao = ‘鼠标’;
//$$shu就是可变变量;在已声明的变量$shu前又加上了一个变量符
echo $$shu;
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
<html>
<head>
</head>
<body>
<!-- 这一行method 对应的值改为post --->
<form action="req.php" method="post">
<input type="text" name="username"/>
<input type="password" name="pwd"/>
<input type="submit" name="提交"/>
</form>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
<?php
//$_POST[‘username’],将username作为字符串放在中括号里面,就得到了表单里面的<input type=”text”name=”username”/>的值
$u = $_POST['username'];
echo $u.'<br />';
//$_POST[‘pwd’],将pwd作为字符串放在中括号里面,就得到了表单里面的<input type=”text”name=”pwd”/>的值
$passwd = $_POST['pwd'];
echo $passwd.'<br />';
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
<?php
phpinfo();
?>
- 1
- 2
- 3
其它环境变量:
2.2.2 PHP常量知识:
define(常量名, 常量值)
- 1
常量知识说明:
<?php
define('MY_NAME','PHP中文网');
echo MY_NAME;
//下面是错误的调用方式
echo '我的名字是MY_NAME';
//下面是正确的调用方式
echo '我的名字是'.MY_NAME;
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.3 PHP注释信息介绍
注释功能说明:
PHP注释的方法如下所示:
// 表示单行注释
# 表示单行注释,用的比较少
- 1
- 2
单行注释举例演示:
<?php
//声明异步iphone7手机的价格变量
$iphone7 = 5880;
//显示输出收集价格
echo $iphone7;
?>
- 1
- 2
- 3
- 4
- 5
- 6
/*
多行注释,这里是注释区域代码
*/
- 1
- 2
- 3
多行注释举例演示:
<?php
/*
作者:PHP中文网
时间:2020.01.01
功能:这是一个多行注释例子
*/
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2.4 PHP数据类型介绍
2.4.1 整形数据类型
8进制声明方式:
<?php
//8进制的取值范围是0-7,即0、1、2、3、4、5、6、7
$bajinzhi=033145;
echo $bajinzhi;
?>
// 这里仅仅是个说明,并不是八进制的运算,具体看下面的图
- 1
- 2
- 3
- 4
- 5
- 6
10进制声明方式:
<?php
//为了方便大家记忆和前期学习,英文不好的朋友可用拼音来声明变量。
//声明变量整数,英文int
$int=1000;
$zhengshu=1000;
echo $int;
echo $zhengshu;
?>
// 这里仅仅是个说明,并不是十进制的运算,具体看下面的图
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
16进制声明方式:以0x开始,后面跟0-f的,0x的后面的abcdef不区分大小写。(了解即可)
<?php
//16进制的取值范围是0-f,即0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f
//声明变量整数,英文int
$shiliujinzhi=0x6ff;
echo $shiliujinzhi;
// 这里仅仅是个说明,并不是十六进制的运算,具体看下面的图
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2.4.2 布尔数据类型
布尔类型举例说明:
<?php
//声明一个变量(拼音)为布尔
$buer=true;
//声明一个变量(英文)
$bool=false;
?>
- 1
- 2
- 3
- 4
- 5
- 6
2.4.3 字符串数据类型
单引号声明
<?php
//声明字符串变量$zifu
$zifu='好好学习吧';
echo $zifu;
?>
- 1
- 2
- 3
- 4
- 5
双引号声明
<?php
//声明字符串变量$str
$str="我想好好学习";
echo $str;
?>
- 1
- 2
- 3
- 4
- 5
字界符声明
<?php
$dingjie = <<<ABC
如果
非要在这个测试
前
面<br />
加上一段
<i>有趣的话</i>
我想说,<h1>努力学习不好么<h1>
ABC;
echo $dingjie
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
那双引号和单引号有什么区别呢:
2.4.4 浮点型数据类型
普通声明浮点数:
<?php
//声明变量fudian的植为12121.3232
$fudian=12121.3232;
echo $fudian;
?>
- 1
- 2
- 3
- 4
- 5
科学声明浮点数:
<?php
//声明变量$f1的植为0.8873
$f1=0.8873;
var_dump($f1)
?>
- 1
- 2
- 3
- 4
- 5
2.4.5 PHP数据类型之查看和判断数据类型
<?php
//声明一个变量88.8,可以自己多做几次实现换成其他类型看看$type输出是多少。
$float = 88.8;
$type = gettype($float);
echo $type;
?>
<?php
//多换几个类型试试
$str = ‘你喜欢男人还是喜欢女人’;
t
y
p
e
=
v
a
r
d
u
m
p
(
type = var_dump(
type=vardump(str);
echo $type;
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
<?php
//is_*系列函数有个特点,就是如果是这个类型的返回的值为真,不是这个数据类型就返回的是假
//声明类型为假
$fo = false;
if (is_bool($fo)) {
echo '执行真区间';
}else{
echo '执行假区间';
}
echo "<br />";
//检查未声明的变量
p
是否为空,为空就执行真区间
i
f
(
i
s
n
u
l
l
(
p是否为空,为空就执行真区间 if(is_null(
p是否为空,为空就执行真区间if(isnull(p)) {
echo ‘执行真区间’;
}else{
echo ‘执行假区间’;
}
echo “<br />”;
//字符串类型的数值,检查执行的真还是假
s
t
r
=
′
18.
8
′
;
i
f
(
i
s
n
u
m
e
r
i
c
(
str = '18.8'; if(is_numeric(
str=′18.8′;if(isnumeric(str)) {
echo ‘执行真区间’;
}else{
echo ‘执行假区间’;
}
echo “<br />”;
//把sca的值换为整数 浮点 布尔和字符串试试
s
c
a
=
t
r
u
e
;
i
f
(
i
s
s
c
a
l
a
r
(
sca = true; if(is_scalar(
sca=true;if(isscalar(sca)) {
echo ‘执行真区间’;
}else{
echo ‘执行假区间’;
}
echo “<br />”;
//换成echo,is_int试试,为什么echo执行假区间呢?
if(is_callable(‘var_dump’)) {
echo ‘执行真区间’;
}else{
echo ‘执行假区间’;
}
echo “<br />”;
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
2.5 PHP流程控制语句
<?php
//我们定义一个泡到美女的变量($pao)为true,意思为泡到了
$pao =fales;
if($pao){
echo '林志玲,我爱死你了';
echo '我愿意去死';
}else{
echo '照骗,爱会消失的';
echo '我不愿意去死';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
2.6 PHP算数运算方法
<?php
$x=5;
$y=6;
//5+6为11
echo $x+$y;
?>
- 1
- 2
- 3
- 4
- 5
- 6
2.6.1 PHP程序自加自减运算
<?php
$x=5;
//先赋值后做加法运算,即将$x的值赋值为$y.$x的值为5,所以将$x的值赋值为$y.$y也是5
$y=$x++;
echo $y;
//$x的结果输出为6,因为赋值给$y后,$x自己又把自己进行了+1操作。所以,$x结果为6
echo $x;
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.6.2 PHP程序比较运算符号
<?php
$x=5;
$y=6;
//因为5大于6不成立,所以为错的,即为false执行了假区间
if(!$x > $y){
echo '变量x大于变量y 成立';
}else{
echo '变量x大于变量y 不成立';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2.6.3 PHP程序逻辑运算符号
<?php
$x=true;
$y=false;
//逻辑与(并且),要求两个都为true才能执行真区间,所以代码中执行假区间
if($x && $y) {
echo '执行了真区间';
}else{
echo '执行了假区间';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
2.6.4 PHP程序位运算
<?php
//$x二进制为:
$x=5;
//$y二进制为:
$y=8;
//结果为13
echo $x ^ $y;
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2.6.5 PHP三元运算符合其它运算符
<?php
$x=true;
$x?$y=5:$y=6;
//输出5
echo $y;
?>
<?php
echo ‘<pre>’;
echo ipconfig
;
echo ‘</pre>’;
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
第三章 PHP流程控制语句
3.1 if条件控制语句
<?php
If(判断语句1){
执行语句体1
}elseif(判断语句2){
执行语句体2
} elseif(判断语句n){
执行语句体n
}else{
最后的else语句可选
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
<?php
$week=date("4");
//判断星期小于6,则输出: 还没到周末,继续上班....
if($week<"6"){
echo "还没到周末,继续上班....";
}
- 1
- 2
- 3
- 4
- 5
- 6
<?php
//定义一个随机变量,判定时间,随机0点至23点
$dida = rand(0,23);
echo "当前时间为 $dida 点
";
if($dida > 6 && $dida < 10 ){
echo '睡觉';
}elseif ($dida > 10 && $dida < 14){
echo '洗澡';
}elseif($dida >= 19 && $dida < 22){
echo '烧水';
}elseif($dida > 22 && $dida <=23){
echo '看电视';
}elseif($dida >=1 && $dida <3){
echo '看电影';
}else{
echo '工作';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
3.2 if嵌套语句
<?php
if(判断1){
if(判断2){
代码段1;
}else{
代码段2;
}
}else{
if(判断3){
代码段3;
}else{
代码段4;
}
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
<?php
//0表示工作秘书,1表示生活秘书
//用代码模拟随机产生当前的行程安排是生活秘书负责还是工作秘书负责
$mishu=rand(0,1);
if($mishu){
//下雨和不下雨的状态,随机产生;下雨状态为1,不下雨状态为0
$xiayu=rand(0,1);
if($xiayu){
//是否购买雨伞;购买了雨伞为1,未购买雨伞为0
$you=rand(0,1);
if($you){
echo '下雨天,已经购买雨伞';
}else{
echo '下雨天,需要购买雨伞';
}
}else{
//是否购买了防晒霜,购买了为1,未购买为0
$you=rand(0,1);
if($you){
echo '未下雨,已经购买了防晒霜';
}else{
echo '未下雨,需要购买防晒霜';
}
}
}else{
//是否准备好了会议议程,准备好了为1,未准备好为0
$yicheng=rand(0,1);
if($yicheng){
echo '已准备好,可以随时出发';
}else{
echo '没有准备好,需要打印,延迟出发';
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
3.3 switch语句使用
<?php
switch(变量){ //字符串,整形
case 具体值1:
执行代码1;
break;
case 具体值2:
执行代码2;
break;
case 具体值3:
执行代码3;
break;
defult:
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
<?php
//定义出行工具
$tool=rand(1,6);
switch($tool){
case 1:
echo '司机开车';
break;
case 2:
echo '民航';
break;
case 3:
echo '自己家的专机';
break;
case 4:
echo '火车动车';
break;
case 5:
echo '骑马';
break;
case 6:
echo '游轮';
break;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
3.4 while循环语句说明
<?php
//定义需要往返的次数,老外喜欢从0开始计数,所以系统也是从0开始
$count=0;
//while后面接布尔值判断,为真执行,为假停止
//$count小于100的时候执行,也就是$count为0至99的时候执行.
//如果$count不小于100了,循环停止执行后续的代码
//循环开始处
while($count < 100){
echo "这是王总第 KaTeX parse error: Expected 'EOF', got '&' at position 11: count 次出差 &̲lt;br />"; …count+1,这样的话,就不会产生$count永远小于100的情况了
$count++;
}
//循环结束
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
对比说明do…while与while区别:
do{
//代码框
}while(判断)
- 1
- 2
- 3
<?php
$i=0;
do {
echo $i;
}while($i >0);
?>
- 1
- 2
- 3
- 4
- 5
- 6
3.5 for循环语句
for(表达式1;表达式2;表达式3)
需要执行的代码段;
}
- 1
- 2
- 3
<?php
for($i=1;$i<=10;$i++)
echo ‘分手后第’.$i.’年, 我全都忘了你的样子<br />’;
}
?>
- 1
- 2
- 3
- 4
- 5
3.6 goto循环语句
基本语法:
<?php
goto wan;
echo '天王盖地虎';
wan:
echo '小鸡炖蘑菇';
?>
- 1
- 2
- 3
- 4
- 5
- 6
基本编写:
<?php
for ($i=0;$i<100;$i++){
echo '第'.$i.'每周往返北京大连<br />';
if($i == 17){
goto end;
}
}
end:
echo '集团公司要求停止此项';
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
第四章 PHP函数基本语法
自定义函数的语法规则,语法规范如下:
Function 函数名(参数名1=[值1], 参数名2=[值2] , 参数名n=[值n])
{
函数中的功能体
[return 返回值]
}
- 1
- 2
- 3
- 4
- 5
代码编写示例:
<?php
function php_cn(){
echo "好好学习";
}
php_cn();
php_cn();
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
php_cn这个函数,是不是显示出来了两段: 好好学习.
根据之前学习的全局变量信息,编写页面内容:
<html>
<head>
<title>网站页面信息</title>
</head>
<body>
<!-- 先用POST来做实验,以后可以改为get -->
<form action="glob.php" method="post">
<input type="text" name="info"/>
<input type="submit" name="提交"/>
</form>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
编写传入参数的函数信息:
<?php
function demo() {
echo $_POST['info'];
}
demo();
?>
- 1
- 2
- 3
- 4
- 5
- 6
<?php
//functions-test-02文件
function demo(){
echo 'aaaa';
}
function test(){
echo 'bbbb';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
<?php
//user.php
include "function-test-02.php";
//可以直接调用
demo();
test();
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
<?php
$mytime = getdate();
echo "年 :".$mytime['year']."
";
echo "月 :".$mytime['mon']."
";
echo "日 :".$mytime['mday']."
";
echo "时 :".$mytime['hours']."
";
echo "分 :".$mytime['minutes']."
";
echo "秒 :".$mytime['seconds']."
";
echo "一个小时中的第几钟 :".$mytime['minutes']."
";
echo "这是一分钟的第几秒 :".$mytime['seconds']."
";
echo "星期名称 :".$mytime['weekday']."
";
echo "月份名称 :".$mytime['month']."
";
echo "时间戳 :".$mytime[0]."
";
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
第五章 PHP数组结构
案例:
<?php
$shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');
echo '<pre>';
var_dump($shu);
echo '</pre>';
?>
- 1
- 2
- 3
- 4
- 5
- 6
<?php
$kele = array('只有不断努力才能博得未来',10 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');
//打印显示$kele
echo '<pre>';
var_dump($kele);
echo '</pre>';
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
5.1 for循环遍历索引数组
<?php
//声明一个数组,值为1到10
$num = array(1,2,3,4,5,6,7,8,9,10);
//按照索引数组的特点,下标从0开始。所以1的下标为0,10的下标为9
echo $num[0].‘<br />’;
echo $num[9].‘<br />’;
//我们可以得到数组中元素的总个数,为10
echo count($num) .‘<br />’;
//遍历这个索引数组的话,我们就可以定义一个变量为
i
/
/
i //
i//i 的值为0,从0开始
//可以设定一个循环条件为:
i
在下标的
(
9
)
最大值之内循环
f
o
r
(
i 在下标的(9)最大值之内循环 for(
i在下标的(9)最大值之内循环for(i = 0 ; KaTeX parse error: Expected 'EOF', got '&' at position 3: i &̲lt; count(num) ; $i++){
echo
n
u
m
[
num[
num[i].‘<br />’;
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
5.2 常用操作数组函数
<?php
$mingren = array("test", "test1", "test2", "test3");
$dc = array_shift($mingren);
echo $dc .'<br />';
print_r($mingren);
?>
- 1
- 2
- 3
- 4
- 5
- 6
第六章 PHP正则表达式
例子 说明
/中间写正则/ 正确
$中间写正则$ 正确
%中间写正则% 正确
^中间写正则^ 正确
@中间写正则@ 正确
(中间写正则) 错误 ///
A中间写正则A 错误
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
/ / /
- 1
/ / /
- 1
<?php
$zz = '/wq/';
$string = 'ssssswqaaaaaa';
if(preg_match($zz, $string, $matches)){
echo '匹配到了,结果为:';
var_dump($matches);
}else{
echo '没有匹配到';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
第七章 PHP文件系统管理
7.1 fopen、fread、fclose操作读取文件
那如何读取一个文件呢?我们先学一个函数。
readfile ( string: $文件名)
功能:传入一个文件路径,输出一个文件。
- 1
- 2
<?php
//linux类的读了方式
readfile("/home/paul/test.txt");
//windows类的读取方式
readfile("c:\oldboyoldboyoot.ini");
?>
注意:上面的代码中windows的斜线是斜线,可能会转义掉一些字符。因此,我们写的时候写上两个斜线。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
<?php
$filename = 'NoAlike.txt';
$filestring = file_get_contents($filename);
echo $filestring;
?>
- 1
- 2
- 3
- 4
- 5
resource fopen ( string $文件名, string 模式)
string fread ( resource $操作资源, int 读取长度)
bool fclose ( resource $操作资源 )
- 1
- 2
- 3
<?php
//你可以创建一个NoAlike.txt,以只读模式打开
$fp = fopen('NoAlike.txt', "r");
//var_dump()操作一下$fp看看效果,输出的是不是只有类型提示的是resource
var_dump($fp);
?>
- 1
- 2
- 3
- 4
- 5
- 6
7.2 PHP创建和修改文件内容
file_put_contents ( string $文件路径, string $写入数据)
功能:向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度
- 1
- 2
操作代码演示示例:
<?php
$data = "在PHP中文网学好PHP,妹子票子不再话下!";
$numbytes = file_put_contents('test.txt', $data);
if($numbytes){
echo '写入成功,我们读取看看结果试试:';
echo file_get_contents('test.txt');
}else{
echo '写入失败或者没有权限,注意检查';
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
<?php
$filename = 'test.txt';
$fp= fopen($filename, "w");
$len = fwrite($fp, '我是一只来自北方的狼,却在南方冻成了狗');
fclose($fp);
print $len .'字节被写入了
';
?>
代码说明:
· 不论有没有新建都会打开文件重新写入
· 原有的文件内容会被覆盖掉
· 文件不存在会创建
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
7.3 PHP创建临时文件
<?php
//创建了一个临时文件
$handle = tmpfile();
//向里面写入了数据
$numbytes = fwrite($handle, '写入临时文件');
//关闭临时文件,文件即被删除
fclose($handle);
echo '向临时文件中写入了'.$numbytes . '个字节';
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
7.4 php移动、拷贝和删除文件
rename($旧名,$新名);
功能:这个函数返回一个bool值,将旧的名字改为新的名字。
- 1
- 2
操作示例说明:
<?php
//旧文件名
$filename = 'test.txt';
//新文件名
$filename2 = $filename . '.old';
//复制文件
rename($filename, $filename2);
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
copy(源文件,目标文件)
功能:将指定路径的源文件,复制一份到目标文件的位置。
- 1
- 2
操作示例说明:
<?php
//旧文件名
$filename = 'copy.txt';
//新文件名
$filename2 = $filename . '_backup';
//修改名字。
copy($filename, $filename2);
?>
说明:会通过上面的例子,发现多出来了一个文件。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
unlink(指定路径的文件)
- 1
代码操作示例:
<?php
$filename = 'test.txt';
if (unlink($filename)) {
echo "删除文件成功 $filename!
";
} else {
echo "删除 $filename 失败!
";
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
<?php
if(file_exists('install.lock')){
echo '已安装,请不要再次进行安装';
exit;
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
我们来学习一比常用函数:
代码演示操作:
<?php
//设置打开的目录是D盘
$dir = "d:/";
//判断是否是文件夹,是文件夹
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
//读取到最后返回false,停止循环
while (($file = readdir($dh)) !== false) {
echo "文件名为: $file : 文件的类型是: " . filetype($dir . $file) . "<br />";
}
closedir($dh);
}
}
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
<?php
//修改linux系统/var/wwwroot/某文件权限为755
chmod("/var/wwwroot/index.html", 755);
chmod("/var/wwwroot/index.html", "u+rwx,go+rx");
chmod("/somedir/somefile", 0755);
?>
- 1
- 2
- 3
- 4
- 5
- 6
代码示例说明:
<?php
$path_parts = pathinfo('d:/www/index.inc.php');
echo '文件目录名:'.$path_parts['dirname']."<br />";
echo '文件全名:'.$path_parts['basename']."<br />";
echo '文件扩展名:'.$path_parts['extension']."<br />";
echo '不包含扩展的文件名:'.$path_parts['filename']."<br />";
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
我们来看一下文件结构:
index.php 展示输入框和留言内容
write.php 向message.txt写入数据
message.txt 存入聊天内容
- 1
- 2
- 3
编写index.php文件信息:
<?php
//设置时区
date_default_timezone_set('PRC');
//读了内容
@$string = file_get_contents('message.txt');
//如果$string 不为空的时候执行,也就是message.txt中有留言数据
if (!empty($string)) {
//每一段留言有一个分格符,但是最后多出了一个&^。因此,我们要将&^删掉
$string = rtrim($string, '&^');
//以&^切成数组
$arr = explode('&^', $string);
//将留言内容读取
foreach ($arr as $value) {
//将用户名和内容分开
list($username, $content, $time) = explode('$#', $value);
echo '用户名为<font color="gree">' . $username . '</font>内容为<font color="red">' . $content . '</font>时间为' . date('Y-m-d H:i:s', $time);
echo '<hr />';
}
}
?>
<h1>基于文件的留言本演示</h1>
<form action="write.php" method="post">
用户名:<input type="text" name="username" /><br />
留言内容:<textarea name="content"></textarea><br />
<input type="submit" value="提交" />
</form>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
<?php
//追加方式打开文件
$fp=fopen('message.txt','a');
//设置时间
$time=time();
//得到用户名
$username=trim($_POST['username']);
//得到内容
$content=trim($_POST['content']);
//组合写入的字符串:内容和用户之间分开,使用$#
//行与行之间分开,使用&^
$string=$username.'$#'.$content.'$#'.$time.'&^';
//写入文件
fwrite($fp,$string);
//关闭文件
fclose($fp);
header('location:index.php');
?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
总结
以上便是在PHP的学习过程中需要掌握的一些基础知识,没有接触过的朋友可能比较吃力,但是多花时间去练一练总是好的,然后多看看参考、一些案例,将PHP和HTML很好的结合,能够熟练地运用更好。