在PHP中用什么方法可以替代ASP中的Application?

waywin 2000-06-22 02:02:00
在编写一个PHP的聊天室,ASP中用Application可以很方便的将聊天内容记录并显示,
可是在PHP中我想到的只有用数据库或文本文件来代替,可是这样会很影响速度,请指教!
去www.phpchina.com找一个APPLICATION类,利用共享内存做的。
可是我在调用该类的时候出现了以下错误:
Fatal error: Call to undefined function: sem_get()
我想用sem_get()这个信号与共享记忆体函式库中的函数, PHP需要有Semaphore and shared memory functions支持,那么请问我在哪里设置呢?我是NT,IIS4.0 + php-4.0b3-Win32,是不是要在php.ini中设置什么呢?
还是因为别的原因呢?
那么如果这个Application类我不能用,除了用文本文件,或者数据库以外,还有没有其他的代替Application这个全局变量的方法呢?请教各位,对于聊天室来说,(session问题php4已经解决了,但application?)有没有更好的算法呢?
...全文
166 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
waywin 2000-06-26
  • 打赏
  • 举报
回复
jiangbo:谢谢你,
你说让我写一个模仿 Application 的TExt API类,可是有这样几个问题:
1、Application($variable)利用不同的$variable来区分不同的Application集,我怎样利用文本来实现,如果一个Application
对应一个文本,岂不是很慢。
2、如果用一个文本写所有的Application集,怎样实现取出功能,每次查找一便吗?
3、如何实现Application的lock和unlock功能,如果在某个时刻将文件设为只读,如何确保以后排队的请求没有遗漏。
4、NT下用VC操作内存可以实现(只是底层的东西要自己做很多),可是能和PHP结合来用吗?
以下是在linux下实现Application功能的一小段,作者是何志强:

…………………………

define("__Class_Application",1,1);

define("Semaphore_Key",1000,1);
define("SharedMem_Key",2000,1);
define("SharedMem_Size",65535,1); //共享内存大小

class Application{
var $SemaphoreID;
var $SharedMemID;
var $VarIndexes;

function Application(){
$this->SemaphoreID = sem_get(Semaphore_Key,1,0600);
$this->SharedMemID = shm_attach(SharedMem_Key,SharedMem_Size,0600);

$this->lock();
$this->VarIndexes = @shm_get_var($this->SharedMemID,0);
if(empty($this->VarIndexes)){
$this->VarIndexes = array();
shm_put_var($this->SharedMemID,0,$this->VarIndexes);
}
$this->unlock();
}

…………………………

请问类似的,我该怎样写呢?
jiangbo 2000-06-24
  • 打赏
  • 举报
回复
自己写一个类
TExt API
模仿 Application .
不难,实现也可靠.
text file可以在 Ram disk.

这样就可以保存多个变量.

不过内容最好用MIME64转转
这样就没有后顾之忧了.....
radish 2000-06-23
  • 打赏
  • 举报
回复
关注
hu_zy 2000-06-23
  • 打赏
  • 举报
回复
实际上将资料丢入文件中会比使用数据库还快,若还很在乎速度,可以在 UNIX 机器中装上 RAM Disk,再将文件的存取路径都设在该 RAM Disk 上,保证存取速度能满足严苛的要求。在有些以高速度搜寻引擎为号召的网站,甚至将整个数据库资料都放到 RAM Disk 中,马上让系统速度提高十倍百倍,而且 RAM 的价格和其它解决方案相比的话还算很便宜。若使用 Windows NT,那就没办法了,看微软什么时候提供,或者用 Third Party 的产品了。

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧