首页 > 代码库 > 20170622日行一记之PHP函数

20170622日行一记之PHP函数

fread() 函数读取文件(可安全用于二进制文件)
fread(file,length)
参数	描述
file	必需。规定要读取打开文件。
length	必需。规定要读取的最大字节数。
该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。

  

函数原型:FILE * fopen(const char * path,const char * mode);
  返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中
  参数说明:
  参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
  r 以只读方式打开文件,该文件必须存在。
  r+ 以可读写方式打开文件,该文件必须存在。
  rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。
  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
  wb 只写打开或新建一个二进制文件;只允许写数据。
  wb+ 读写打开或建立一个二进制文件,允许读和写。
  ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
  wx 创建文本文件,只允许写入数据。[C11]
  wbx 创建一个二进制文件,只允许写入数据。[C11]
  w+x 创建一个文本文件,允许读写。[C11]
  wb+x 创建一个二进制文件,允许读写。[C11]
  w+bx 和“wb+x”相同[C11]
  以x结尾的模式为独占模式,文件已存在或者无法创建(一般是路径不正确)都会导致fopen失败。文件以操作系统支持的独占模式打开。

  

<?php
$a = "Original";
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>

  

从某文本中取得所有的电话号码

<?php
preg_match_all ("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Call 555-1212 or 1-800-555-1212", $phones);
?>

搜索匹配的 HTML 标记(greedy)

<?php
// \\2 是一个逆向引用的例子,其在 PCRE 中的含义是
// 必须匹配正则表达式本身中第二组括号内的内容,本例中
// 就是 ([\w]+)。因为字符串在双引号中,所以需要
// 多加一个反斜线。
$html "<b>bold text</b><a href=http://www.mamicode.com/howdy.html>click me";

preg_match_all ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/"$html$matches);

for (
$i=0$icount($matches[0]); $i++) {
  echo 
"matched: ".$matches[0][$i]."\n";
  echo 
"part 1: ".$matches[1][$i]."\n";
  echo 
"part 2: ".$matches[3][$i]."\n";
  echo 
"part 3: ".$matches[4][$i]."\n\n";
}
?>

输出

 

matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>
matched: <a href=http://www.mamicode.com/howdy.html>click me>

 

  

20170622日行一记之PHP函数