基本的 PHP 语法
PHP 脚本以 结束:
PHP 文件的默认文件扩展名是 “.php”。
PHP echo 和 print 语句
echo 和 print 区别:
- echo - 可以输出一个或多个字符串
- print - 只允许输出一个字符串,返回值总为 1
goto循环语句
王同学每周往返,但有一个特例:项目失败后或者集团临时通知除外,就可以不再这么每周往返了.
基本语法:
1 2 3 4 5 6
| <?php goto wan; echo '天王盖地虎'; wan: echo '小鸡炖蘑菇'; ?>
|
基本编写:
1 2 3 4 5 6 7 8 9
| <?php for ($i=0;$i<100;$i++){ echo '第'.$i.'每周往返北京大连<br />'; if($i == 17){ goto end; } } end: echo '停止此项';
|
PHP文件系统管理
(1)fopen、fread、fclose操作读取文件
1.readfile读取文件函数
1 2
| readfile ( string: $文件名) 功能:传入一个文件路径,输出一个文件。
|
下面的这一段代码中,只要传入文件名或者指定的文件路径就把文件读取出来了。
1 2 3 4 5 6 7
| <?php //linux类的读了方式 readfile("/home/paul/test.txt"); //windows类的读取方式 readfile("c:\oldboyoldboyoot.ini"); ?> 注意:上面的代码中windows的斜线是斜线,可能会转义掉一些字符。因此,我们写的时候写上两个斜线。
|
2、file_get_contents打开文件函数
1 2 3 4 5
| <?php $filename = 'NoAlike.txt'; $filestring = file_get_contents($filename); echo $filestring; ?>
|
3、fopen、fread、fclose操作读取文件
上面file_get_contents打开文件的方式简单、粗暴。
1 2 3
| resource fopen ( string $文件名, string 模式) string fread ( resource $操作资源, int 读取长度) bool fclose ( resource $操作资源 )
|
fopen的模式有下面几个
1 2 3 4 5 6
| <?php //你可以创建一个NoAlike.txt,以只读模式打开 $fp = fopen('NoAlike.txt', "r"); //var_dump()操作一下$fp看看效果,输出的是不是只有类型提示的是resource var_dump($fp); ?>
|
(2)PHP创建和修改文件内容
1、file_put_contents写入文件
第一种写入文件的方式:
1 2
| file_put_contents ( string $文件路径, string $写入数据) 功能:向指定的文件当中写入一个字符串,如果文件不存在则创建文件。返回的是写入的字节长度
|
操作代码演示示例:
1 2 3 4 5 6 7 8 9 10
| <?php $data = "在PHP中文网学好PHP,不再话下!"; $numbytes = file_put_contents('test.txt', $data); if($numbytes){ echo '写入成功,我们读取看看结果试试:'; echo file_get_contents('test.txt'); }else{ echo '写入失败或者没有权限,注意检查'; } ?>
|
2、fwrite配合fopen进行写入操作
1 2 3 4 5 6 7 8
| <?php $filename = 'test.txt'; $fp= fopen($filename, "w"); $len = fwrite($fp, '我是一只来自北方的狼,却在南方冻成了狗'); fclose($fp); print $len .'字节被写入了 '; ?>
|
代码说明:
· 不论有没有新建都会打开文件重新写入
· 原有的文件内容会被覆盖掉
· 文件不存在会创建
(3) PHP创建临时文件
我们之前创建的文件都是永久文件,而创建临时文件在我们平时的项目开发中也非常有用,创建临时文件的好处:文件操作完成后即删除,不需要去维护这个文件的删除状态。
1 2 3 4 5 6 7 8 9
| <?php //创建了一个临时文件 $handle = tmpfile(); //向里面写入了数据 $numbytes = fwrite($handle, '写入临时文件'); //关闭临时文件,文件即被删除 fclose($handle); echo '向临时文件中写入了'.$numbytes . '个字节'; ?>
|
(4) php移动、拷贝和删除文件
我们日常在处理文件的时候,可以删除文件、重命名文件也可以也可复制文件。
1、重命名文件:
1 2
| rename($旧名,$新名); 功能:这个函数返回一个bool值,将旧的名字改为新的名字。
|
操作示例说明:
1 2 3 4 5 6 7 8
| <?php //旧文件名 $filename = 'test.txt'; //新文件名 $filename2 = $filename . '.old'; //复制文件 rename($filename, $filename2); ?>
|
2、复制文件
复制文件,就相当于是克隆技术,将一个原来的东西再克隆成一个新的东西,两个长得一模一样。
1 2
| copy(源文件,目标文件) 功能:将指定路径的源文件,复制一份到目标文件的位置。
|
操作示例说明:
1 2 3 4 5 6 7 8
| <?php //旧文件名 $filename = 'copy.txt'; //新文件名 $filename2 = $filename . '_backup'; //修改名字。 copy($filename, $filename2); ?>
|
说明:会通过上面的例子,发现多出来了一个文件。
3、删除文件
删除文件就是将指定路径的一个文件删除,不过这个删除是直接删除。使用的是windows电脑,你在回收站看不到这个文件,你只会发现这个文件消失了。
代码操作示例:
1 2 3 4 5 6 7 8 9 10
| <?php $filename = 'test.txt'; if (unlink($filename)) { echo "删除文件成功 $filename! "; } else { echo "删除 $filename 失败! "; } ?>
|
4、检测文件属性函数
假设安装界面的网址是:install.php,安装的锁文件是install.lock。我们就可以检测install.lock文件是否存在。
<?php
if(file_exists('install.lock')){
echo '已安装,请不要再次进行安装';
exit;
}
?>
5、PHP目录处理函数
php 目录处理函数处理文件夹的基本思想如下:
1.读取某个路径的时候判断是否是文件夹
2.是文件夹的话,打开指定文件夹,返回文件目录的资源变量
3.使用readdir读取一次目录中的文件,目录指针向后偏移一次
4.使用readdir读取到最后,没有可读的文件返回false
5.关闭文件目录
代码演示操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?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); } } ?>
|
6、php 文件权限设置
chmod主要是修改文件的的权限
<?php
//修改linux系统/var/wwwroot/某文件权限为755
chmod("/var/wwwroot/index.html", 755);
chmod("/var/wwwroot/index.html", "u+rwx,go+rx");
chmod("/somedir/somefile", 0755);
?>
7、php文件路径函数
我们经常会遇到处理文件路径的情况。例如:
1.文件后缀需要取出来
2.路径需要取出名字不取目录
3.只需要取出路径名中的目录路径
4.或者把网址中的各个部份进行解析取得独立值
5.甚至是自己组成一个url出来
很多地方都需要用路径处理类的函数。把常用的路径处理函数为大家做了标注,对着这个路径处理函数进行处理即可:在这里插入图片描述
代码示例说明:
1 2 3 4 5 6 7
| <?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 />"; ?>
|
8、php实现文件留言本
我们来看一下文件结构:
1 2 3
| index.php 展示输入框和留言内容 write.php 向message.txt写入数据 message.txt 存入聊天内容
|
编写index.php文件信息:
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 //设置时区 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、内容与用户之前用一个特殊的符号进行了分割
下面我们来写write.php写入留言至文件的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?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'); ?>
|
参考文章:
PHP 教程