易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP 在线聊天系统的实现

在线实时聊天系统,一直是一个比较麻烦的东西。
一般实现在线实时聊天,是利用JS在客户端使用ajax每隔一定的时间就返回服务器请求数据,如果有新的聊天信息则用JS呈现给用户
我们不说这样做的利弊,直接切入正题,如何来实现服务器推的在线聊天系统
首先,我先请大家看一个例子
复制代码
<?php
while(true){
        echo "这是一条信息<br />";
        flush();
        sleep(1);
}
ob_end_flush();
?>
运行后看到什么?是不是每隔一秒就输出一次“这是一条信息”?
这个就可以让我们模拟实现服务器推了
这里先说明一点。例子里面的聊天系统是基于数据库的。当然了,也可以是基于文件系统的,但是基于文件的就比较麻烦了。我们选个简单的,说清楚道理就可以了。
文件的结构如下:
chat.php 主页文件
msgshow.php   聊天信息展示文件
send.php  聊天信息发送文件
conn.php  数据库接口文件
数据表如下
chat表:
msgid  聊天信息ID
msg     信息内容
sendtime    发送时间
senduser   发送人姓名
好,我们正式开始
chat.php文件中,有一个浮动框架连接到msgshow.php文件
chat.php文件代码如下
复制代码
<?php
header ( 'Content-Type:text/html;charset=utf-8' );
?>
<html>
<head>
<title>实时聊天测试</title>
</head>
<body>
<iframe src="chat.php" height=200 width=200>
</iframe>
</body>
</html>
msgshow.php文件代码如下
<?php
require "conn.class.php";
set_time_limit(0);
$conn=new conn();
$timestamp=time();   //这里请注意时区的设置
print str_repeat(' ',4096);  //输出4096个空格,因为有的服务器自带有输出缓存,只有达到一定大小或PHP脚本运行完毕后才将内容输出,这一大小一般为4096个字节
while(true){
   
    if(connection_aborted()){
        break;
    }
    //读取所有的新的聊天信息
    $chatData= $conn-&


相关文档:

PHP 中长连接的实现

  每次我们访问 PHP 脚本的时候,都是当所有的PHP脚本执行完成后,我们才得到返回结果。如果我们需要一个脚本持续的运行,那么我们就要通过 PHP 长连接的方式,来达到运行目的。
  每个 PHP 脚本都限制了执行时间,所以我们需要通过 set_time_limit 来设置一个脚本的执行时间为无限长;然后使用 flush() 和 ob_flush() ......

PHP验证码生成脚本(5位数字png格式)


<?php
header("Content-Type:image/png");
srand((double)microtime()*1000000);
$img_height=20;
$img_width=60;
$im=@imagecreate($img_width,$img_height) or die("不能初始化GD文件流");
$background_color=imagecolorallocate($im,255,255,255);
$text_color=imagecolorallocate($im,233,14,91);
......

[PHP]PDO调用存储过程

1. 数据库中已创建存储过程user_logon_check, PHP调用示例如下,
<?php
$dsn = 'mssql:dbname=MyDbName;host=localhost';
$user = 'sa';
$password = '666666';
try {
$dbCon = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
print 'Connection failed: '.$e->getMessage();
......

linux下apache+php安装常见问题


configure: error: Unable to find libgd.(a|so)
如果使用的是ubuntu或debian就很简单了,直接sudo apt-get install apache2
libapache2-mod-php5 php5 php5-gd 就基本上搞定,但是用源代码安装还是很麻烦~
wget http://www.boutell.com/gd/http/gd-2.0.11.tar.gz
tar zxvf gd-2.0.11.tar.gz
cd gd-2.0.11
sudo . ......

php生成word文档,并可以下载

<?php
if($_POST['str'])
{
header('Content-type: application/doc');
header('Content-Disposition: attachment; filename="downloaded.doc"');
echo iconv("UTF-8","GB2312",$_POST['str']);
}
?>
<a href="javascript:void(0)" onclick="downword()">下载</a>
<div id="word" style="dis ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号