Php常见问题总结(7)_PHP教程
推荐:使用Xdebug优化你的php程序我本地使用的是xampp服务器套件,版本是1.64,发现里面代的php_xdebug.dll竟然无法使用.应该是xdebug版本和当前的php版本(5.24)版本不符合。去下载了相应的版本发现可以正常工作了。在php.ini里
23:如何从数据库读取三天内的所有记录
首先表格里要有一个DATETIME字段记录时间,
格式为'2003-7-15 16:50:00'
SELECT * FROM `xltxlm` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`) <= 3;
24:如何远程链接Mysql数据库
在增加用户的mysql表里有一个host字段,修改为"%",或者指定允许连接的ip地址,这样,你就可以远程调用了。
$link=mysql_connect("192.168.1.80:3306","root","");
25:用Apache后,主页出现乱码
方法一:
AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset off
方法二:
AddDefaultCharset GB2312
26:为什么单引号,双引号在接受页面变成(\'\")
解决方法:
方法一:在php.ini中设置:magic_quotes_gpc = Off
方法二: $str=stripcslashes($str)
27:怎么让程序一直运行下去,而不是超过30秒就停止
set_time_limit(60)//最长运行时间一分钟
set_time_limit(0)//运行到程序自己结束,或手动停止
28:计算当前在线人数
例子一:用文本实现
<?php
//首先你要有读写文件的权限
//本程序可以直接运行,第一次报错,以后就可以
$online_log = "count.dat"; //保存人数的文件,
$timeout = 30;//30秒内没动作者,认为掉线
$entries = file($online_log);
$temp = array();
for ($i=0;$i<count($entries);$i ) {
$entry = explode(",",trim($entries[$i]));
if (($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {
array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() ($timeout))."\n"); //更新浏览者的时间
$users_online = count($temp); //计算在线人数
$entries = implode("",$temp);
//写入文件
$fp = fopen($online_log,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);
echo "当前有".$users_online."人在线";
?>
例子二:
用数据库实现在线用户
<? # # Author: Marco(hkfuk) # # Contact: Crazy_Marco@msn.com # $host="localhost";//mysql的host $user="root";//mysql的用戶名稱 $pw="";//mysql的密碼 $db="";//mysql資料庫名稱 $update_time="30";//更新的頻率---秒数 session_start(); if(!$_SESSION['name'])session_register("name"); ############################################ $con=mysql_connect($host,$user,$pw)or die("不可以連接資料庫"); $now=time(); mysql_select_db($db,$con)or die("錯誤的資料庫$db"); if(!empty($name)){//如果用戶已經登入了 $query=mysql_query("select count(username) from online_list where username='$name'",$con);//查詢在線到表是否已經有用戶的名稱 $result=mysql_result($query,0);//查詢的結果 if($result!=0){//如果用戶已經在在線列表了 @mysql_query("update online_list set second_time='$now' where username='$name'",$con);//更新用戶的最後在線時間 }else{//如果用戶已經不在在線列表 @mysql_query("insert into online_list(username,userip,online_time,second_time)values('$name','$REMOTE_ADDR','$now','$now')",$con);//新增一個用戶到在線列表 } } else{//如果用戶沒有登入 $query=mysql_query("select count(userip) from online_list where userip='$REMOTE_ADDR'",$con);//查詢在線到表是否已經有訪客的ip 地址 $result=mysql_result($query,0);//查詢的結果 if($result!=0){//如果訪客的ip地址已經在在線列表了 @mysql_query("update online_list set second_time='$now' where userip='$REMOTE_ADDR'",$con);//更新訪客的最後在線時間 }else{//如果用戶列表沒有訪客的ip地址 @mysql_query("insert into online_list(username,userip,online_time,second_time)values('訪客','$REMOTE_ADDR','$now','$now')",$con);//新增一個訪客到在線列表 } } $del_time=$now-$update_time; @mysql_query("delete from online_list where second_time<$del_time",$con);//刪除在$update_time秒內沒有動作的用戶 ?> |
分享:php4和php5单态模式(Singleton Pattern)写法单态模式(Singleton Pattern) 就是一个类Class只有一个实例存在。(Ensure a class only has one instance, and provide a global point of access to it.)
这个是php5的写法。
- 相关链接:
- 教程说明:
PHP教程-Php常见问题总结(7)。