php 之 没有mysql支持时的替代方案

2016-01-29 13:35 6 1 收藏

php 之 没有mysql支持时的替代方案,php 之 没有mysql支持时的替代方案

【 tulaoshi.com - PHP 】

一般个人免费主页空间都不会提供mysql支持,就是提供也很苛刻,所以寻找也个良好的替代方案很重要哦!
PHP的文件处理功能很强大,所以可以用文件的存取来代替来!
(要知道没有数据库的时候,什么都是用文件组织的哦!呵呵!),其中个数据项用特殊符号分割,我采用的是||,方便通过explode()函数读取单个记录!
其实这里数据库的思想还是可以用到的!象数据库的索引!
所以必须先做个索引文件!(这样说也并不正确)
就以留言本来说吧:
主要文件是:
index.database
其结构如下:
留言人姓名||留言人性别||留言时间||留言内容存放位置||feiyn(这项是方便读取时的被‘n’干恼的!
每条存储一行可以方便的通过PHP的fgets()函数读取,或者file()函数读取每行到数组
为了防止多人同是对数据的写入冲突,故还需要加锁(也用文件实现)
以下是写入代码
<?php
//必须传入以下参量:
//留言人姓名 $name
//留言人性别 $sex
//留言时间 $time
//留言内容存放位置 $savePosite
$indexFile="index.database";
$indexFileLock=$indexFile."Lock";
$message=$name."||".$sex."||".$time."||".$savePosite."||feiy||";//这就是要写入的记录
while(file_exists($indexFileLock)) $temp++; //检测是否已加锁
fclose(fopen($indexFileLock,"w")); //如没有则进入并加锁避免同是访问冲突
$fp=fopen($indexFile,"a");
fputs($message,strlen($message));
fclose($fp);
unlink($indexFileLock);//解锁
?
读取代码
<?php
$indexFile="index.database";
$indexFileLock=$indexFile."Lock";
while(file_exists($indexFileLock)) $temp++; //检测是否已加锁
fclose(fopen($indexFileLock,"w")); //如没有则进入并加锁避免同是访问冲突
$ary=file($indexFile);
unlink($indexfileLock);//解锁
for($i=0;$i<sizeof($ary);$i++){
$tempAry=explode("||",$ary[$i]);
echo("name:".$tempAry[0]);
echo("sex:".$tempAry[1]);
echo("sex:".$tempAry[2]);
echo("savePosite:",$tempAry[3]);//可以从该地址读取留言内容
}
?

 

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

通过以上可以方便的解决常用的网页运用,比如聊天室,BBS论坛,书签之类
如果那位大虾有更好的解决方法,请赐教!谢谢!
我的主页:feiyschool.51.net
QQ:23072155
email:feiyhy@sina.com

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

来源:http://www.tulaoshi.com/n/20160129/1490748.html

延伸阅读
标签: PHP
      将PHP和MYSQL合理且有效的结合在一起可以制作出精致的数据库网站。MYSQL是一种小型的,紧密的数据服务器,支持标准SQL。它在UNIX和WINDOWS环境下都能够使用。     PHP和MYSQL都是免费的开放源码。它们的结合可以在WINDOWS中发展,在UNIX中做服务。PHP也支持其他一些数据库包括PostgreSQL. 下面有...
标签: PHP
  PHP变量 PHP3支持下面类型的变量: (一)、内部变量 主要有整数(interger),浮点数(float-point numbers),字符串(string),数组(array),对象(object)。 1 初始化变量 要在PHP中初始化变量, 你只要简单的给它赋值即可。对于大多数类型,这是最直接的。对于数组和对象,可以使用其它方法。 2 初始化数组 ...
标签: PHP
       <?   if(!$session && !$scid) {   $session = md5(uniqid(rand()));   SetCookie("scid", "$session", time() + 14400);   } /* last number is expiration time in seconds, 14400 sec = 4 hrs */      class Cart {  ...
关于抽屉导航(三线icon/汉堡包菜单)的文章和讨论已经够多了。本文无意加入这些讨论,只是想寻找一种更好的替代方案,毕竟抽屉导航的缺陷早已成为公论。 效率低下:交互有够麻烦的 导航性差:不知道自己在哪 塞满了各种乱七八糟的功能 先来看看有哪些常见的导航模式 在此之前我想先老生常谈一下:每一款产品都是为特定用户群体而设计的,...
标签: MySQL mysql数据库
摘于:  http://jjgod.3322.org/2005/07/31/a-mysql-41-story/ 下面要写的是一篇非常无聊的东西,充斥了大量各式各样的编码、转换、客户端、服务器端、连接……呃,我自己都不愿意去看它,但想一想,写下来还是有点意义的,原因有四: MySQL 4.1 对多语言的支持有了很大变化 (这导致了问题的出现);  尽管大部分的地方 (包括个...

经验教程

829

收藏

49
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部