作者ybite (小犬)
看板PHP
标题Re: [请益] php 字串写入档案
时间Sun Apr 13 17:43:22 2008
※ 引述《wishmeteor (人生有梦 筑梦踏实)》之铭言:
: 想请问板上的高手们~
: 想要把一个字串写入至一个txt档
: 查了函数 int fwrite(int fp, string string, int [length])
: 说明如下:
: 本函式将字串 string 写入档案资料流的指标 fp 上。若有指定长度 length,则会写入
: 指定长度字串,或是写到字串结束。值得注意的是若指定了长度,则在 PHP 环境设定值
: magic_quotes_runtime 的设定将被忽略,同时字串中的斜线不会被删除
: 所以就写了:
: $string = "欲写入之内容";
: $file_name = "\result.txt";
: //将结果写入档案
: fwrite ($file_name, $string);
: //并将结果显示於网页上
: 可是出来的结果:
: Warning: fwrite(): supplied argument is not a valid stream resource in
: C:\AppServ\www\test.php on line 31
: 看了这个意思 应该是 $fp有问题
: 所以去找了别人的范例来看:
: <?
: $myFile = 'just.txt';
: $fp = fopen($myFile, 'a');
: echo "$fp";
: fwrite($fp, "your content 1\n");
: fclose($fp);
: ?>
: 目前查到的资料 fwrite都是搭配fopen使用
: 也就是写入原读入档案 但是这不是我需要的...
如果你用的是PHP5,使用file_put_contents就好了
http://tw.php.net/file_put_contents
注意这个函数php4没有
<?php
$string = "欲写入之内容";
$file_name = "\result.txt";
//将结果写入档案
file_put_contents ($file_name, $string);
/* 但注意这样写,如果result.txt存在他会覆盖掉所有result.txt原有内容!
如果要使用"附加在最後"的话
file_put_contents ($file_name, $string, FILE_APPEND);*/
?>
不过fopen这样写没有错喔
http://tw.php.net/fopen
resource fopen ( string $filename , string $mode [, bool $use_include_path
[, resource $context ]] )
注意mode的部份
'a'是如果现有档案存在,新东西写於最後
'w'是如果现有档案存在,清空所有原有内容後写新东西
如果担心写到现有的textfile,请搭配file_exists
: 所以想弄懂 $fp 但印出来的是: Resource id #3
: 不知道是什麽意思...
: ================================================================
: 所以想请问一下
: 一、
: 1.要怎麽把某个字串写入至同一个资料夹呢?
: (该资料夹下原本没有这个档案 要写入一个新的file中)
: 2.$fp该填什麽呢?
fopen传回的resource(might be the only way!)
: 二、那个$fp是什麽东西呢.. 我查了一下它叫做file handle
: 但是印出来的record id#3是什麽意思还是百思不得其解...
$fp是一种File Pointer,简单来讲(很不严谨来说)
fopen之後PHP会试着打开档案,然後产生出一个File Pointer「指向」对档案的操作
然後如果成功的话,在fwrite/fread/fgets指定File Pointer就可以对这个档案作操作
当然你在fopen的mode中不允许的操作也无法被使用罗
: 谢谢回答 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.84
※ 编辑: ybite 来自: 140.112.30.84 (04/13 17:46)
1F:推 wishmeteor:谢谢~ 回答的很仔细 :) 04/13 21:27
2F:推 kalasiya:也可以试着用fput()将字串写入档案 04/15 10:41