课程笔记
  • 所属章节课程:php 正则达达示中的模式修正符

    模式匹配符 功能 i 模式中的字符将同时匹配大小写字母. m 字符串视为多行 s 将字符串视为单行,换行符作为普通字符. x 将模式中的空白忽略. A 强制仅从目标字符串的开头开始匹配. D 模式中的美元元字符仅匹配目标字符串的结尾. U 匹配最近的字符串. 模式匹配符的用法如下: / 正则表达示/模式匹配符 模式匹配符是放在这句话的最后的。例如: /\w+/s

    2018-07-160个赞

  • 所属章节课程:php 读取文件

    fopen、fread、fclose操作读取文件 上面file_get_contents打开文件的方式简单、粗暴。下面的 resource fopen ( string $文件名, string 模式) string fread ( resource $操作资源, int 读取长度) bool fclose ( resource $操作资源 ) 通过上面的函数我们来讲解资源类型的通常操作方式: 1.打开资源 2.使用相关函数进行操作 3.关闭资源 fopen函数 fopen函数的功能是打开文件,参数主要有两个: 1.文件打开的路径 2.打开文件的模式 返回类型是一个资源类型,我们第一次遇到了之前基础类型的时候讲到的资源类型。 资源类型需要其他的函数来操作这个资源。所有的资源有打开就要有关闭。 fread函数 函数的功能的功能是读取打开的文件资源。读取指定长度的文件资源,读取一部份向后移动一部份。至到文件结尾。 fclose函数 fclose函数的功能是关闭资源。资源有打开就有关闭。 了解完函数,后两个函数比较简单。而fopen函数的模式到底是什么,fopen的模式有下面几个,我们来讲一下fopen的模式: 模式 说明 r 只读方式打开,将文件指针指向文件头。 r+ 读写方式打开,将文件指针指向文件头。 w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建 w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建 a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建 a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之 x 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建 x+ 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建

    模式 说明 t windows下将\n转为\r\n b 二进制打开模式 说明: 实验无法让肉眼看到这个实验效果。大家记住有这个特点即可。 Windows 下提供了一个文本转换标记('t')可以透明地将 \n 转换为 \r\n。 与此对应还可以使用 'b' 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 'b' 或者用 't' 作为 mode 参数的最后一个字符。

    2018-07-170个赞

  • 所属章节课程:php 创建和修改文件内容

    模式和w模式的不同 同样是下面的这段代码,我们改为a模式。 <?php $filename = 'test.txt'; $fp= fopen($filename, "a"); $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望'); echo $len .'字节被写入了\n'; ?> 打开网页执行这段代码,你会发现:每刷新一次,文件中就会多一段 :读大学迷茫了,PHP中文网学PHP给你希望。 总结: 模式 总结 x 每次写入会干掉原有文件的内容,文件不存在都会创建 a 每次写入都会向文件的尾端追加内容 注:a+ 是增强的追加功能。可以读取时也可以使用。 x模式和w模式的不同 这段代码我们再实验一次,改为x模式: <?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'读大学迷茫了,PHP中文网学PHP给你希望'); echo $len .'字节被写入了\n'; ?> 我们会发现: 1.文件存在的时候会报错 2.如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的时候又报错了 3.x+ 是增强的x模式。读取时也可以使用。

    2018-07-170个赞

  • 所属章节课程:php 创建临时文件

    我们之前创建的文件都是永久文件。 而创建临时文件在我们平时的项目开发中也非常有用。创建临时文件的几个好处: 文完后即删除 不需要去维护这个文件的删除状态 例如:我需要把A的文件内容转存B里面,把B的文件内容转存到C里面。 就跟现实生活中一样,我可以先用一个临时的瓶子把B的水装起来,然后把A的数据写入到B里面。把临时瓶子的水追加到C里面。 我们来学习一下这个函数: resource tmpfile ( ) 功能:创建一个临时文件,返回资源类型。关闭文件即被删除。 <?php //创建了一个临时文件 $handle = tmpfile(); //向里面写入了数据 $numbytes = fwrite($handle, '写入临时文件'); //关闭临时文件,文件即被删除 fclose($handle); echo '向临时文件中写入了'.$numbytes . '个字节'; ?>

    2018-07-170个赞

  • 所属章节课程:php检测文件属性函数

    1.我们在做软件安装的时候,大家会发现如果文件存在了,就跳转到了其他的地方。 2.如果在安装的过程当中,某些文件没有写入权限,就不让进行安装。 我们来举一个国内非常出名的软件,discuz的安装过程截图给大家看看

    我们来学习一下下面的一批函数。然后,我们来通过一个例子进行学习。 bool file_exists ( $指定文件名或者文件路径) 功能:文件是否存在。 bool is_readable ( $指定文件名或者文件路径) 功能:文件是否可读 bool is_writeable ( $指定文件名或者文件路径) 功能:文件是否可写 bool is_executable ( $指定文件名或者文件路径) 功能:文件是否可执行 bool is_file ( $指定文件名或者文件路径) 功能:是否是文件 bool is_dir ( $指定文件名或者文件路径) 功能:是否是目录 void clearstatcache ( void ) 功能:清楚文件的状态缓存 上面的功能一看就清楚了。那实验,我们就来写这个最开始我们举的这个例子。 我们来讲第一个例子,文件锁。如果已经安装了,存在安装锁就提示已安装,否则就继续安装。 我们假设安装界面的网址是:install.php,安装的锁文件是install.lock。我们就可以检测install.lock文件是否存在。 <?php if(file_exists('install.lock')){ echo '已安装,请不要再次进行安装'; exit; } ?> 我们接下来做一个文件安装检测的实验来检测文件或目录是否有写入或者读取权限。如果没有则不能进行安装。 处理这件事情的思路如下: 1.定义一批需要检测权限的数组 2.可以检测是文件夹还是文件 3.做一个标置位变量,如果标置位变量一旦为false则不显示下一步的安装 <?php //可以定义一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定义标志位变量 $flag = true; foreach($files as $v){ echo $v; //判断是文件还是文件夹 if(is_file($v)){ echo '是一个文件&nbsp;&nbsp;&nbsp;&nbsp;'; }else if(is_dir($v)){ echo '是一个文件夹&nbsp;&nbsp;&nbsp;&nbsp;'; } if(is_readable($v)){ echo ' 可读'; }else{ echo '<font color="red">不可读</font>'; } if(is_writeable($v)){ echo '可写'; }else{ echo '<font color="red">不可写</font>'; } echo '<br />'; } if($flag){ echo '<a href="step1">下一步</a>'; }else{ echo '不能进行安装'; } ?> 通过上面的例子,我们就做到了。实现PHP某个软件安装过程当中的安装检测。 也就是我们上面思路的实现。

    2018-07-170个赞

  • 所属章节课程:php 文件常用函数和常量

    函数名 功能 file 把整个文件读入一个数组中 fgets 从文件指针中读取一行,读到最后返回false fgetc 从文件指针中读取一个字符,读到最后返回false ftruncate 将文件截断到给定的长度

    函数名 功能 file 把整个文件读入一个数组中 fgets 从文件指针中读取一行,读到最后返回false fgetc 从文件指针中读取一个字符,读到最后返回false ftruncate 将文件截断到给定的长度 我们通过一个实例来把上面几个函数都用到。 我们在demo.txt文件中写入一批文件: abcdeefghijklk opqrst uvwxyz 12345678 <?php //以增加的r模式打开 $fp = fopen('demo.txt','r+'); //你分发现每次只读一个字符 echo fgetc($fp); //我要全部读取可以,读取一次将结果赋值一次给$string while($string = fgetc($fp)){ echo $string; } ?> fgets每次打开一行: <?php //以增加的r模式打开 $fp = fopen('demo.txt','r+'); //你分发现每次只读一个字符 echo fgets($fp); echo fgets($fp); echo fgets($fp); echo fgets($fp); ?> 上面的代码,你会发现每次读取一次打开一行。读取最后返回的是false。 我们接下来看文件截取函数: <?php //打开我们上面的demo.txt文件 $file = fopen("demo.txt", "a+"); //你可以数数20个字有多长,看看是不是达到效果了 echo ftruncate($file,20); fclose($file); ?> 上例中我们发现,截取多长就能显示多长的内容。 文件的时间函数 函数 功能说明 filectime 文件创建时间 filemtime 文件修改时间 fileatime 文件上次访问时间 <?php $filename = 'demo.txt'; if (file_exists($filename)) { echo '$filename文件的上次访问时间是:' . date("Y-m-d H:i:s", fileatime($filename)); echo '$filename文件的创建时间是: ' . date("Y-m-d H:i:s", filectime($filename)); echo '$filename文件的修改时间是: ' . date("Y-m-d H:i:s", filemtime($filename));} ?>

    2018-07-170个赞

  • 所属章节课程:php 文件锁处机制

    文件锁的用途: 若一个人在写入一个文件,另外一个人同时也打个了这个文件进行写入文件。 这情况下,如果遇到一定的碰撞概率的话,不知道到底谁的操作为准。 因此,这个时候我们引入锁机制。 若用户A在写入或者读取这个文件的时候,将文件加上共享所。我可以读,其他人也可以读。 但是,我如果这与的时候。我使用独占锁。这个文件归我了,你们都别动,除非我将文件锁进行释放。 注意:不论加上了文件锁后要注意释放。

    锁类型 说明 LOCK_SH 取得共享锁定(读取的程序) LOCK_EX 取得独占锁定(写入的程序 LOCK_UN 释放锁定(无论共享或独占) 我们接下来把demo.txt加上一个独占锁,进行写入操作。 <?php $fp = fopen("demo.txt", "r+"); // 进行排它型锁定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件这个时候被我独占了哟\n"); // 释放锁定 flock($fp, LOCK_UN); } else { echo "锁失败,可能有人在操作,这个时候不能将文件上锁"; } fclose($fp); ?> 说明: 1.上例中我为了写入文件,把文件加上了独占锁。 2.如果我操作完成,写入完成后,解除掉了独占锁。 3.如果是在读取文件的时候,大家可加按照同样的处理思路加上共享锁。

    2018-07-180个赞

  • 所属章节课程:php 目录处理函数

    8-9 PHP目录处理函数: 处理文件夹的基本思想如下: 1.读取某个路径的时候判断是否是文件夹 2.是文件夹的话,打开指定文件夹,返回文件目录的资源变量 3.使用readdir读取一次目录中的文件,目录指针向后偏移一次 4.使用readdir读取到最后,没有可读的文件返回false 5.关闭文件目录 我们来学习一比常用函数: 函数名 功能 opendir 打开文件夹,返回操作资源 readdir 读取文件夹资源 is_dir 判断是否是文件夹 closedir 关闭文件夹操作资源 filetype 显示是文件夹还是文件,文件显示file,文件夹显示dir

    2018-07-180个赞

  • 所属章节课程:php文件路径函数

    8-11 PHP文件路径函数: 1.文件后缀需要取出来 2.路径需要取出名字不取目录 3.只需要取出路径名中的目录路径 4.或者把网址中的各个部份进行解析取得独立值 5.甚至是自己组成一个url出来 ... .... 很多地方都需要用路径处理类的函数。 我们把常用的路径处理函数为大家做了标注,大家对着这个路径处理函数进行处理即可: 函数名 功能 pathinfo 返回文件的各个组成部份 basename 返回文件名 dirname 文件目录部份 parse_url 网址拆解成各部份 http_build_query 生成url 中的query字符串 http_build_url 生成一个url

    2018-07-180个赞