Php部分常见问题总结第2/2页

 更新时间:2006年07月07日 00:00:00   作者:  

10:如何比较两个日期相差几天,(更简单的算法)


<?PHP
$Date_1
="2003-7-15";//也可以是:$Date_1="2003-7-15 23:29:14";
$Date_2="1982-10-1";
$d1=strtotime($Date_1);
$d2=strtotime($Date_2);
$Days=round(($d1-$d2)/3600/24);
Echo   
"偶已经奋斗了 $Days 天^_^";
?>

27:为什么单引号,双引号在接受页面变成(\\'\")


解决方法:
方法一:在php.ini中设置:magic_quotes_gpc = Off
方法二: $str=stripcslashes($str)


28:怎么让程序一直运行下去,而不是超过30秒就停止


set_time_limit(60)//最长运行时间一分钟
set_time_limit(0)//运行到程序自己结束,或手动停止


29:计算当前在线人数

例子一:用文本实现

<?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."人在线"

?>
例子二:
用数据库实现在线用户


30:什么是模板,怎么用


这里有几篇关于模板的文章

我用的是phplib模板
下面是其中几个函数的使用

$T->Set_File("随便定义","模板文件.tpl");

$T->Set_Block("在set_file中定义的","<!-- 来自模板 -->","随便定义");

$T->arse("在Set_Block中定义的","<!-- 来自模板 -->",true);

$T->arse("随便输出结果","在Set_File中定义的");

设置循环格式为:

<!--(多于一个空格) BEGIN $handle(多于一个空格)-->

如何将模板生成静态网页

<?php
//这里使用phplib模板
    
............
    ............
    
$tpl->parse("output","html");
    
$output $tpl->get("output");// $output 为整个网页内容

 
    
function wfile($file,$content,$mode='w') {
    
$oldmask umask(0);
    
$fp fopen($file$mode);
    if (!
$fp) return false;
    
fwrite($fp,$content);
    
fclose($fp);
    
umask($oldmask);
    return 
true;
}
   
// 写到文件里
    
Wfile($FILE,$output);
    
header("location:$FILE");//重定向到生成的网页
}
?>
phplib下载地址               smarty下载地址


31:怎么用php解释字符

比如:输入2+2*(1+2),自动输出8
可以用eval函数

<form method=post action="">
<input type="text" name="str"><input type="submit">
</form>
<?php
$str
=$_POST['str'];
eval(
"$o=$str;");
Echo   
"$o";
?>

另外,用此函数必须特别小心!!
如果有人输入format: d:会是什么结果?

相关文章

最新评论