十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
PHP有两种方法读写文件,方法一、file、file_get_contents、file_put_contents三个函数整体读写文本,适合文本文件不太大的情况。两个函数的的典型应用是:
成都创新互联主营秀峰网站建设的网络公司,主营网站建设方案,成都app软件开发公司,秀峰h5小程序开发搭建,秀峰网站营销推广欢迎秀峰等地区企业咨询
$text=file_get_contents('a.txt');//把文本文件的所有内容取到字符串变量$text里面
$arr=file('a.txt');//把文本文件的所有内容,取到数组$arr里面,$arr[0]就是第一行,以此类推
$arr[1]='abc';//或者通过其它途径修改变量值
$text=implode($arr);//把数组连接为字符串
file_put_contents('a.txt', $text);//把字符串变量的内容写入到文本文件里面。
方法二、使用fopen、fgets、fputs、fclose函数读写文件,可以应付特大文件的修改。文件的修改一般方法是新建立一个文件,把源文件全部扫描一遍,遇到需要的部分进行处理,最后删除源文件,更名新文件。例如下面的代码把a.txt里面的abc修改为def:
$fp1=fopen('a.txt','r');
$fp2=fopen('a.tmp','w');
while(!feof($fp1)){
$line=fgets($fp1);
$line=str_replace('abc','def',$line);
fputs($fp2,$line);
}
flcose($fp1);
fclose($fp2);
unlike('a.txt');
rename('a.tmp', 'a.txt');
举例如下:
创建userinfo_update.php页面用于查询用户信息,先显示信息,在修改:
先通过GET获取用户编号查询用户信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
页面效果:
创建update.php文件,用于修改用户信息:
使用到了mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。
//通过post获取页面提交数据信息
$userId = $_POST[userId];
$userName = $_POST[userName];
$userAge = $_POST[userAge];
$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";
mysql_query($sql,$conn);//执行SQL
$mark = mysql_affected_rows();//返回影响行数
$url = "userinf_select.php";
运行结果
创建delete.php文件,完成删除用户信息功能:
$userId = $_GET['userId'];
include 'connection.php';
$sql = "delete from user_info where user_id='".$userId."'";
mysql_query($sql,$con);
$mark = mysql_affected_rows();//返回影响行数
if($mark0){
echo "删除成功";
}else{
echo "删除失败";
}
mysql_close($con);
运行结果:
?php
header("Content-type: text/html; charset=gbk");
if(isset($_POST['submit'])){
$editContent=$_POST['editContent'];//获取输入框的内容
$res = file_put_contents("test.txt", $editContent);//执行修改
if ($res){
echo '内容修改成功!';
}else{
echo '内容修改失败!';
}
}else{
echo '请做出修改....';
}
?
form method="post" action=""
textarea name="editContent" cols="100" rows="15"
?php echo file_get_contents("test.txt") ?
/textarea
button name="submit"确认/button
/form
我建议一下吧,文本数据库的例子本来太多,但是为了逻辑简化,最好通过专门接口实现文件与数据的转换,可以采用我下面的模板编写:
?php
//文件最前面定义两个全局变量,数据库文件名和用户数组
$pwd_db_file='db.txt';
$UserPassword=array();
//下面的pwd_db_read函数,把文件内容读入到全局数组中
function pwd_db_read(){
global $pwd_db_file, $UserPassword;
$fp=fopen($pwd_db_file,'r');
while ($s=fgets($fp)){
list($usr,$pwd)=explode('|', $s);
$UserPassword[$usr]=$pwd;
}
fclose($fp);
}
//下面的pwd_db_write函数保存数组内容到文件中
function pwd_db_write(){
global $pwd_db_file, $UserPassword;
fp=fopen($pwd_db_file, 'w');
foreach ($UserPassword as $usr=$pwd)
fputs($fp,"$usr|$pwd\n");
fclose($fp);
}
//有了上面的全局变量和函数,要写什么功能都简单
//下面假释本脚本调用的时候通过reg.php?job=adduser=...pass=...
//的格式进行调用,job为add表示添加用户,del表示删除,modi表示修改
//另外的user和pass表示用户名或者密码,job不是以上内容表示登录
//主程序一开始就打开数据库
pwd_db_read();
//下面判断功能
if ($jon=='add'){
if (array_key_exists($user,$UserPassword)) echo "用户 $user 已经存在!"
else $UserPassword[$user]=$pass;//就一句话,简单吧
}elseif (job=='del'){
unset($UserPassword[$user]);//你自己考虑编写是否确认删除的内容
}elseif ($job=='modi'){
if (array_key_exists($user,$UserPassword)) $UserPassword[$user]=$pass;//和添加是不是有点类似
else echo "用户 $user 不存在!"
}else{
if ($UserPassword[$user]==$pass){
echo '密码正确。';
//接下来可能要做许多事情
}else echo '密码错误!';
}
//程序最后保存数据库修改
pwd_db_write();
?
看得懂吗,没有上机调试,语法问题可能难免,如果发现不明白的问题请补充。
php数据写入文本文件的具体操作步骤如下:
1、使用touch命令建立一个a.php的文件。
2、用vim打开a.php,输入相关内容。
3、使用touch命令建立一个b.php的文件。
4、用vim打开b.php,输入相关内容。把表单提交的数据写入到1.txt文件中。
5、使用touch命令建立1.txt。
6、使用chmod命令将其权限设置为777。
7、打开浏览器输入localhost/a.php,看到a.php的表单了,输入相应的数据,点击提交即可。
8、提交成功后,查看一下1.txt的数据,已经写入到1.txt了文本文件。
$str_sql="Select count(*) cnt From CompanyInfo Where CompanyID'$m_company_id' And CompanyName='$m_company_name', Status='$m_status'";//这里的",status='$m_status'"语句对?应该把‘,’改成and吧,我再mysql里运行这个语句是有语法错误的
检查下你的post变量是否有值,你一步步echo下试试吧。
update语句测试没有错误。虽然Status='$m_status '这里多了个空格