1 |
<?php $string =' [b]这是一个记事本[/b] [i]php的日常笔记。[/i] [u]你们想我知道什么吗?[/u] [font=黑体]不是想?[/font] [color=Red]我也想[/color] [color=Magenta]但是。[/color] [qq]1378353651[/qq] [url=http: //www.xlxz.org]心灵,情感,日记[/url]'; $pattern = array ( '/\[b\](.*?)\[\/b\]/' , '/\[i\](.*)\[\/i\]/U' , '/\[u\](.*?)\[\/u\]/' , '/\[font=(.*?)\](.*?)\[\/font\]/' , '/\[color=(\w+)\](.*)\[\/color\]/U' , '/\[qq\]([1-9]\d{4,10})\[\/qq\]/U' , '/\[url=(.*?)\](.*?)\[\/url\]/' , ); $replace = array ( '<b>\\1</b>' , '<i>\\1</i>' , '<u>\\1</u>' , '<font face="\\1">\\2</font>' , '<font color="\\1">\\2</font>' , '<a href="http://wpa.qq.com/msgrd?V=1&Uin=\\1&Site=xlxz&Menu=yes" target="_blank"><img src="http://wpa.qq.com/pa?p=1:\\1:1" border="0"></a>' , '<a href="\\1" target="_blank">\\2</a>' , ); $arr =preg_replace( $pattern , $replace , $string ); echo $arr ; ?> | 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 46 47 48 49 50 51 52 53 54 |
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 | <?php //php 抓网页 $url = 'http://php.xlxz.org/2012/11/158/' ; //获取一个文件,也可以获取远程文件 $string = file_get_contents ( $url ); preg_match( '/<ul class="mode-txtlink c-lists">(.*?)<\/ul>/smi' , $string , $arr ); preg_match_all( '/<a href="(.*?)".*?<\/a>/' , $arr [1], $links ); foreach ( $links [1] as $val ){ $str = file_get_contents ( $val ); preg_match( '/<h1>(.*?)<\/h1>/i' , $str , $title ); file_put_contents ( basename ( $val ), $title [1]); } ?> |
php文件系统
函数:
fopen('文件路径','打开方式'); 返回一个资源类型
fclose(资源)关闭文件
fwrite()写入文件
fread读取文件,读取文件到最后,会返回false
feofend of file 判断文件是否到达结尾处,如果到达结尾处,返回true,
fputs是fwrite的别名函数
fgets一行一行读
fgetc每次读一个字符
file将放入一个数组中
readfile读取并直接输出
ftell告诉文件指针所在位置
rewind将文件指针移到文件的开始处
fseek
SEEK_SET直接设置到什么位置上面去,默认值
SEEK_CUR在当前位置上面加上多个字节
LOCK_SH 共享锁,主要在读取的时候进行和
LOCK_EX独占锁 主要用于写入的时候,上WC,加上锁的例子
LOCK_UN释放锁
LOCK_NB附加锁
如果没有到结尾处就返回false ,因此我可以这儿进行取反操作。
1,远程路径[要求你当机器能上网,并且php.ini当中准许你访问远程文件],通常只能读不能写。
2,本地路径 打开本地绝对路径,或者本地的相对路径
打开方式,打开模式。
W
本地文件系统路径,以操作系统的路径为准。
它不认服务器解析后的路径,它认当前文件在操作系统当中的路径。
/ 当时是指当前站点的根路径
/本地文件所在的分区的根目录
/ 是指目录分割符 linux目录分割符
\ 也是目录分割符 windows目录分割符
Windows目录分割符 / \ 因此,为了保障项目能够移致到其他操作系统当中去,我们在这里面用 / windows linux都能使用。
常量:
DIRECTORY_SEPARATOR 自动识别不同操作系统的目录分割符
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 46 47 48 49 50 51 52 53 54 | <?php $fp = fopen ( 'yi.txt' , 'r' ); while (! feof ( $fp )){ $t = fgetc ( $fp ); echo $t ; } fclose( $fp ); file_put_contents ( 'yi.txt' , '会不会覆盖呢?还是追加呢?' ); echo file_get_contents ( 'yi.txt' ); $arr =file( 't.txt' ); var_dump( $arr ); readfile( 't.txt' ); $t = fopen ( 'love.txt' , 'a+' ); echo ftell ( $t ). '<br>' ; echo fread ( $t ,5). '<br>' ; rewind ( $t ); fseek ( $t ,5,SEEK_SET); fseek ( $t ,-6,SEEK_END); echo fread ( $t ,1024); $fp = fopen ( 'yi.txt' , 'a+' ); flock ( $fp ,LOCK_EX); fwrite( $fp , '只是一个记事本?' ); flock ( $fp ,LOCK_UN); fclose( $fp ); ?> |
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <?php //fopen('文件路径','打开方式'); //$fp=fopen('e:/nixiaopi.txt','w'); //var_dump($fp); // / \ //echo 'd:'.DIRECTORY_SEPARATOR.'web'.DIRECTORY_SEPARATOR.'37'.DIRECTORY_SEPARATOR. // $fp=fopen('a.txt','w'); //w 写入模式,当文件不存在的时候,直接创建。当文件存在,则将原有内容全部清空。将文件指针移到文件的开始处 // // // 如果你有w模式,打开“某团”,产生的数据丢失,请不要找我来拷。我机器上没有。[重点] // // //w+ 与w模式相同,它是增强的w模式。它不仅可以进行写操作,还可以进行读取操作。 // // //r r模式 叫做只读模式,文件不存在,则返回一条警告,如果文件存在则打开文件。文件指针指到文件的开始处 [重点] // // // r+模式 增加的r模式,与r相同,可以进行写相关操作 // // // x 异或模式 文件存在就返回false,文件不存在就创建,文件指针指到文件的开始处 [非重点,了解] // // x+ 增加的x模式 // // a追加模式 文件存在就打开文件,文件原有内容不清除,写入时,向文件的结尾处追加新的内容。在读取的时候,文件指针是指在开始处的,如果文件不存在则创建。文件存在,就打开。【重点】 // // // a+ 增加的a模式,功能更加强劲 // // b 二进制模式,与其他模式配合使用,是指,仅在windows下有效.linux下无效 [了解] // // t 仅在windows下在有效,\r\n,\n 所以,它仅在windows下生效[了解] //// //文件指针? // file_put_contents ( 'nvren.txt' , '日常笔记' ); $fp = fopen ( 'meinv.txt' , 'ab' ); fwrite( $fp , '看了!奥特慢也不行' ); //fwrite($fp,'nanren youxiu hen xinfu',3); while (! feof ( $fp )){ echo fread ( $fp ,1); } fclose( $fp ); var_dump( $fp ); $fp = fopen ( 'nvren.txt' , 'r' ); echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; echo fgets ( $fp ). '<br>' ; fclose( $fp ); ?> |