phpfgets的简单介绍
php中fgetc,fgets,fgetss三者的区别
一、功能区别
fgetc — 从文件指针中读取字符
fgets — 从文件指针中读取一行
fgetss — 从文件指针中读取一行并过滤掉 HTML 标记
二、原型区别
string fgetc(resource $handle)
string fgets(resource $handle[, int $length])
string fgetss(resource $handle[, int $length[, string $allowable_tags]])
三、返回值区别
fgetc:返回一个包含有一个字符的字符串,该字符从 handle 指向的文件中得到。碰到 EOF 则返回 FALSE。
fgets:从指针 handle 指向的文件中读取了 length - 1 字节后返回字符串。如果文件指针中没有更多的数据了则返回 FALSE。错误发生时返回 FALSE。
fgetss:从 handle 指向的文件中大读取 length - 1 个字节的字符,并过滤了所有的 HTML 和 PHP 代码。错误发生时返回 FALSE。
php中fgets()与fread()有什么区别
fgets 从可访问的文件流里读取一行。以换行符结束。或者读够指定的字数。或者碰到文件结尾。。看先碰到哪一种情况。
fread 从可访问的文件流里读取一定的字数。默认为 1024 字节。或者碰到文件结尾。看先碰到哪一种情况。。
两者主要区别在于。 fgets 碰到换行符的时候。也会停止读取。而 fread 不会。相同的部份就是。文件读完。或者读够指定的字节数。都会停止。
换行符局限于 \r\a 或 \a 二进制为 0x0D0A 或 0x0A ,也就是你在编写文件时输入的回车。HTML 的 br 不算是换行,算是4个字符而已。
php5.0 使用 fgets()函数是读取中文文件,显示乱码,求解谢谢
你必须知道你的中文文本文件使用的编码方式,默认的可能是windows-1252(ANSI),乱码的原因就是文本文件的编码和你的浏览器页面charset指定的编码不一致造成的,可以在输出之前对内容执行 $content = iconv('文本文件的编码格式,如windows-1252', '浏览器charset,如utf-8', $content)就行了
关于PHP fgets和explode
经我测试确实有错!
我把下面的函数改了一下你看看,你写的有一点错误!当函数中遇到return时.此函数就跳出不再执行了!相当于你写了个exit;所以你如果文本中有两个以上的用户名,第二个用户名永远检测不到.
改过后测试可用
function checkPasswd($passwd,$user){
$flag=false;
if(!$fh = fopen("passwd.txt", "r")) return false;
while(!feof($fh)){
$line = trim(fgets($fh));
//your code goes below this line
$x = explode(":",$line);
if($user == $x[0] $passwd == $x[1])
{
$flag=true;
break;
}
else
{
$flag=false;
}
}
fclose($fh);
return $flag;
}