今天看的是其他人的文章哈 传送门
一、PHP主要输出方式
1、echo
echo() 实际上不是一个函数,是php语句,因此您无需对其使用括号。不过,如果您希望向 echo() 传递一个以上的参数,
那么使用括号会发生解析错误。而且echo是返回void的,并不返回值,所以不能使用它来赋值。
<?php
$a = echo("words"); // 错误!不能用来赋值
echo "words"; // 55nav
echo ("words"); // 55nav
echo ("apple","bear"); //发生错误,有括号不能传递多个参数
echo "alice","bill","cart", "daring"; // 不用括号的时候可以用逗号隔开多个值, 会输出alicebillcartdaring 不管是否换行,最终显示都是为一行
$fistname="alice";
echo "$fistname com"; // 如果 $firstname = "alice", 则会输出 alice com.
echo '$firstname com'; // 由于使用单引号,所以不会输出$firstname的值,而是输出 $firstname com
?>
2.print_r 函数
print_r函数打印关于变量的易于理解的信息。
如果变量是string , integer or float , 将会直接输出其值,如果变量是一个数组,则会输出一个格式化后的数组,便于阅读,也就是有key和value对应的那种格式。对于object对象类同。print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值TRUE。
<?php
print_r($arr);//直接打印数组$arr
$a="alice";
$c=print_r($a);
echo $c;//$c的值是TRUE
$c=print_r($a,true);
echo $c; //$c的值是字符串alice
?>
3.var_dump函数
功能: 输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。
var_dump($a);
二、PHP第一种特殊类型—资源
资源(resource):资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。我们可以对资源进行操作(创建、使用和释放)。任何资源,在不需要的时候应该被及时释放。如果我们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕之后回收资源,以避免内存被消耗殆尽。
<?php
$file=fopen("f.txt","r"); //打开文件
$con=mysql_connect("localhost","root","root"); //连接数据库
$img=imagecreate(100,100);//图形画布
?>
//偷窥一个小文件,假设服务器上有个文件为“f.txt”,这时候,我们就需要用到资源这种特殊的数据类型。
<?php
//首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
$file_handle = fopen("/data/webroot/resource/php/f.txt","r");
if ($file_handle){
//接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
while (!feof($file_handle)) { //判断是否到最后一行
$line = fgets($file_handle); //读取一行文本
echo $line; //输出一行文本
echo "<br/>"; //换行
}
}
fclose($file_handle);//关闭文件?>
file handle叫做文件句柄。在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该文件。
fopen() 函数打开文件或者 URL。
如果打开失败,本函数返回 FALSE。
语法:fopen(filename,mode,include_path,context)
- filename必需。规定要打开的文件或 URL。
- mode必需。规定要求到该文件/流的访问类型。可能的值见下表。
- include_path可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。
- context可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。
mode 参数的可能的值:
"r+"读写方式打开,将文件指针指向文件头。
"w"写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"w+"读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"a"写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"a+"读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"x"创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。
这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
"x+"创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。
这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。
此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
注释:不同的操作系统家族具有不同的行结束习惯。当写入一个文本文件并想插入一个新行时,需要使用符合操作系统的行结束符号。基于 Unix 的系统使用 \n 作为行结束字符,基于 Windows 的系统使用 \r\n 作为行结束字符,基于 Macintosh 的系统使用 \r 作为行结束字符。 如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。
Windows 下提供了一个文本转换标记("t")可以透明地将 \n 转换为 \r\n。与此对应还可以使用 "b" 来强制使用二进制模式,这样就不会转换数据。要使用这些标记,要么用 "b" 或者用 "t" 作为 mode 参数的最后一个字符。
默认的转换模式依赖于 SAPI 和所使用的 PHP 版本,因此为了便于移植鼓励总是指定恰当的标记。如果是操作纯文本文件并在脚本中使用了
\n 作为行结束符,但还要期望这些文件可以被其它应用程序例如 Notepad 读取,则在 mode 中使用 "t"。在所有其它情况下使用
"b"。
在操作二进制文件时如果没有指定 "b" 标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于 \r\n 字符的奇怪问题。
注释:为移植性考虑,强烈建议在用 fopen() 打开文件时总是使用 "b" 标记。
注释:再一次,为移植性考虑,强烈建议你重写那些依赖于 "t" 模式的代码使其使用正确的行结束符并改成 "b" 模式。```
feof(fp) 函数检测是否已到达文件末尾 (eof)。
有两个返回值:如果遇到文件结束,函数feof(fp)的值为非零值,否则为0。
fgets() 函数从文件指针中读取一行。
语法:fgets(file,length)
file必需。规定要读取的文件。
length可选。规定要读取的字节数。默认是 1024 字节。
从*file*指向的文件中读取一行并返回长度最多为*length*- 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了*length*- 1 字节后停止(要看先碰到那一种情况)。如果没有指定*length*,则默认为 1K,或者说 1024 字节。若失败,则返回 false。
注释:*length*参数从 PHP 4.2.0 起成为可选项,如果忽略,则行的长度被假定为 1024 字节。从 PHP 4.3 开始,忽略掉*length*将继续从流中读取数据直到行结束。如果文件中的大多数行都大于 8 KB,则在脚本中指定最大行的长度在利用资源上更为有效。
注释:从 PHP 4.3 开始本函数可以安全用于二进制文件。早期的版本则不行。
注释:如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符,可以激活 auto_detect_line_endings 运行时配置选项。
fgetss() 函数从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。与[fgets()](http://www.w3school.com.cn/php/func_filesystem_fgets.asp)相同,不同的是 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。
语法:fgetss(*file*,*length*,*tags*)
*file*必需。规定要读取的文件。
*length*可选。规定要读取的字节数。默认是 1024 字节。该参数在 PHP 5 之前是必需的。
*tags*可选。规定不会被删除的标签。
可以用可选的第三个参数*tags*指定哪些标记不被去掉。若失败,则返回 false。
<?php
$file = fopen("test.htm","r");
echo fgetss($file,1024,"<p>,<b>");
fclose($file);
?>```
fclose() 函数关闭一个打开文件。
语法:fclose(file)
file必需。规定要关闭的文件。
file参数是一个文件指针。fclose() 函数关闭该指针指向的文件。如果成功则返回 true,否则返回 false。文件指针必须有效,并且是通过 fopen() 或 fsockopen() 成功打开的。
三、PHP第二种特殊类型—空类型
NULL(NULL):NULL是空类型,对大小写不敏感,NULL类型只有一个取值,表示一个变量没有值,当被赋值为NULL,或者尚未被赋值,或者被unset(),这三种情况下变量被认为为NULL。
<?php
error_reporting(0); //禁止显示PHP警告提示
$var; //为变量未赋值
var_dump($var); //NULL
$var1=null; //将null赋值给变量$var1
var_dump($var1); //NULL
$var2=NULL; //将NULL赋值给变量$var2
var_dump( $var2); //NULL
$var3 = "节日快乐!";
unset($var3); //将变量$var3注销定义
var_dump($var3); //NULL
?>