- 论坛徽章:
- 0
|
在文件的读写操作对某一行的操作是很有用的!
但是,在php文件操作函数中好像没有对行操作的函数!
fgets(),fputs(),fseek(int fp, int offset);好像都是字符的操作。
虽然我用这些函数编过文本型的计数器。但只是单行的操作!
用实现多行操作不方便!有时文件指针位置搞不清。
string fgets(int fp, int length);当length>;这行中的字符数,那么会自动到下一行!
但是int fputs(int fp, string str, int [length]);却只会接着写,不会换行!
方法一:
我在想,如果在写入的str中包含换行符也可以实现!但是不知到怎样表示?
方法二:
还有是,用fgets(int fp, int length);先定位文件指针的位置(因为fgets函数有自动换行的功能!),在用fputs写入!
为什么在php文件操作函数中没有对行操作的函数!奇怪!!!!
-------------------------------
方法一:已经解决,05/25-22:33file.txt文件如下
line 1 (空行用于取出回车换行两个符。)
aaaaa line 2
bbbbb line 3
ccccccc line 4
$fp=fopen("file.txt","r+" ;
rewind($fp);//指针移到文件头
$enter=fgets($fp,3);//取出回车换行两个符。
虽然回车换行是特殊字符,看不见的。
其实应该用ASCII码可的表示出但是我好像找不到有关的函数。
只好用上面的方法读出回车换行符。
如果那位知道请指点!!!
-------------------------------
代码如下:
<?
//---------------------------
// 图片计数器 version 1.0 -
// arthor :baorongabc -
//---------------------------
$counter_file="counter.txt";
function rw_counterfile()
{
$fp=fopen("code/php/jsq/counter.txt","r+" ;
if($fp==NULL) echo "文件处理出错";
rewind($fp);//指针移到文件头
$num=fgets($fp,7);//读出6字符串
rewind($fp);//指针移到文件头
fputs($fp, $num+1, 6);//写入##个字符
rewind($fp);//
$num=fgets($fp,23);//读出字符串
fclose($fp);
return $num;
}
//---------------------------------------------------
function disp_pic($num)//把文本的数字转换图象的数子
{ //$i=1;
$my_string=(string)$num;//把文本的数字转换图象的数子
for($i=0;$i<strlen($my_string);$i++)
{
$pic=$pic.'<img src="number_images/counter'.substr($my_string,$i,1).'.gif" width="17" height="25">;';//把文本的数字转换图象的数字
}
return $pic;
}
//---------------------------------------------
$num=rw_counterfile();
//$pic=disp_pic($num);
//echo "该网站第".$pic."次被访问";//图形数字出错
echo $num;//纯数字出错
?>; |
|