Php部分常见问题总结

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

20:我点击后退按钮,为什么之前填写的东西不见
这是因为你使用了session.
解决办法:
<?php 
session_cache_limiter('private, must-revalidate');
session_start(); 
...........
..........
?>
21:怎么在图片里显示IP地址
<?
  Header("Content-type: image/png");
  $img = ImageCreate(180,50);
  $ip = $_SERVER['REMOTE_ADDR'];
  ImageColorTransparent($img,$bgcolor);
  $bgColor = ImageColorAllocate($img, 0x2c,0x6D,0xAF); // 背景颜色
  $shadow = ImageColorAllocate($img, 250,0,0);    // 阴影颜色
  $textColor = ImageColorAllocate($img, oxff,oxff,oxff);       // 字体颜色
  ImageTTFText($img,10,0,78,30,$shadow,"d:/windows/fonts/Tahoma.ttf",$ip); //显示背景
  ImageTTFText($img,10,0,25,28,$textColor,"d:/windows/fonts/Tahoma.ttf","your ip is".$ip); // 显示IP
  ImagePng($img);
  imagecreatefrompng($img);
  ImageDestroy($img);
?>
22:如何取得用户的真实IP
<? 
function iptype1 () { 
if (getenv("HTTP_CLIENT_IP")) { 
   return getenv("HTTP_CLIENT_IP"); 

else { 
   return "none"; 


function iptype2 () { 
if (getenv("HTTP_X_FORWARDED_FOR")) { 
   return getenv("HTTP_X_FORWARDED_FOR"); 

else { 
   return "none"; 


function iptype3 () { 
if (getenv("REMOTE_ADDR")) { 
   return getenv("REMOTE_ADDR"); 

else { 
   return "none"; 


function ip() { 
$ip1 = iptype1(); 
  $ip2 = iptype2(); 
$ip3 = iptype3(); 
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") { 
   return $ip1; 

elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") { 
   return $ip2; 

elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") { 
   return $ip3; 
}   
  else { 
  return "none"; 


Echo ip(); 
?>
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:正则到底怎么用
点击这里
正则表达式中的特殊字符
26:用Apache后,主页出现乱码 
方法一: 
AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset off 
方法二: 
AddDefaultCharset GB2312
========================================================
tip:
大家贴代码时GB2312会被解释成??????
改成这样就不会
[color=#000000]GB[/color]2312
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:会是什么结果?

相关文章

  • php中Workerman框架实例讲解

    php中Workerman框架实例讲解

    在本篇文章里小编给大家分享了一篇关于php中Workerman框架实例讲解内容,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • 深入array multisort排序原理的详解

    深入array multisort排序原理的详解

    本篇文章是对array multisort排序原理进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP中的函数-- foreach()的用法详解

    PHP中的函数-- foreach()的用法详解

    本篇文章是对PHP中的函数foreach()的用法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • PHP操作Mongodb封装类完整实例

    PHP操作Mongodb封装类完整实例

    这篇文章主要介绍了PHP操作Mongodb封装类,结合完整实例形式分析了php封装的针对MongoDB数据库常见的基本配置、连接、增删改查、集合等操作定义与使用方法,需要的朋友可以参考下
    2018-06-06
  • PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)

    PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)

    这篇文章主要介绍了PHP面向对象程序设计高级特性,结合实例形式分析了php面向对象程序设计中所涉及的静态属性、常量属性、接口、继承、抽象类、析构、克隆等概念与使用技巧,需要的朋友可以参考下
    2016-12-12
  • PHP中如何实现常用邮箱的基本判断

    PHP中如何实现常用邮箱的基本判断

    在邮件发送出去之前,用户的基本信息已经存在于数据库中了,如果是个错误的邮箱或者是恶意多注册账户那就需要过滤了,下面为大家介绍下PHP中实现常用邮箱的判断
    2014-01-01
  • PHP创建XML接口示例

    PHP创建XML接口示例

    这篇文章主要介绍了PHP创建XML接口,结合实例形式分析了php数据库查询及xml格式数据构造相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • PHP使用zlib扩展实现GZIP压缩输出的方法详解

    PHP使用zlib扩展实现GZIP压缩输出的方法详解

    这篇文章主要介绍了PHP使用zlib扩展实现GZIP压缩输出的方法,结合实例形式详细分析了php gzip配置及压缩输出的相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • php实现比较两个字符串日期大小的方法

    php实现比较两个字符串日期大小的方法

    这篇文章主要介绍了php实现比较两个字符串日期大小的方法,涉及php日期操作的相关技巧,需要的朋友可以参考下
    2015-05-05
  • Laravel 5.4重新登录实现跳转到登录前页面的原理和方法

    Laravel 5.4重新登录实现跳转到登录前页面的原理和方法

    在日常开发中,我们经常遇到一个需求,就是用户登陆后存在过期时间,超时用户需重新登录,下面这篇文章主要给大家介绍了关于Laravel 5.4重新登录实现跳转到登录前页面的原理和方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07

最新评论