网站地图    收藏   

主页 > php专栏 > php综合实列 >

ajax php 聊天室实例代码(2) - 综合实例

来源:自学PHP网    时间:2014-12-02 13:09 作者: 阅读:

[导读] functionget_ip(){global$_server;if($_server){if($_server[http_x_forwarded_for])$realip=$_server[http_x_forwarded_for];elseif($_s...

ajax php 聊天室实例代码(2)

  1. function get_ip() 
  2.  global $_server
  3.  if ($_server
  4.  { 
  5.   if ( $_server[http_x_forwarded_for] ) 
  6.    $realip = $_server["http_x_forwarded_for"]; 
  7.   else if ( $_server["http_client_ip"] ) 
  8.    $realip = $_server["http_client_ip"]; 
  9.   else 
  10.    $realip = $_server["remote_addr"]; 
  11.  } 
  12.  else 
  13.  { 
  14.   if ( getenv'http_x_forwarded_for' ) ) 
  15.    $realip = getenv'http_x_forwarded_for' ); 
  16.   else if ( getenv'http_client_ip' ) )  
  17.    $realip = getenv'http_client_ip' ); 
  18.   else 
  19.    $realip = getenv'remote_addr' ); 
  20.  } 
  21.  return $realip
  22. function array2json($arr
  23.  $keys = array_keys($arr); 
  24.  $isarr = true; 
  25.  $json = ""
  26.  for($i=0;$i<count($keys);$i++) 
  27.  { 
  28.   if ($keys[$i] !== $i
  29.   { 
  30.    $isarr = false; 
  31.    break
  32.   } 
  33.  } 
  34.  $json = $space
  35.  $json.= ($isarr)?"[":"{"
  36.  for($i=0;$i<count($keys);$i++) 
  37.  { 
  38.   if ($i!=0) $json.= ","
  39.   $item = $arr[$keys[$i]]; 
  40.   $json.=($isarr)?"":$keys[$i].':'
  41.   if (is_array($item)) 
  42.    $json.=array2json($item); 
  43.   else if (is_string($item)) 
  44.    $json.='"'.str_replace(array("r","n"),"",$item).'"'; 
  45.   else $json.=$item
  46.  } 
  47.  $json.= ($isarr)?"]":"}"
  48.  return $json
  49. function keeponline() 
  50.  global $disonline,$datafile
  51.  if (!$disonlinereturn
  52.  $name = $_post['name']; 
  53.  $ip = get_ip(); 
  54.  $onlines = @file_get_contents($datafile); 
  55.  $s1 = "|{$name}|{$ip}|"
  56.  if (strpos($onlines,$s1) === false) 
  57.  { 
  58.   if (strpos($onlines,"|".$name."|") === false) 
  59.   { 
  60.    $fp = @fopen($datafile,"a+"); 
  61.    if ($fp
  62.    { 
  63.     if (@flock($fp, lock_ex)) 
  64.     { 
  65.      @fputs($fp,time()."|".time().$s1."n"); 
  66.      @flock($fp, lock_un); 
  67.     } 
  68.     @fclose($fp); 
  69.    } 
  70.   } 
  71.   else 
  72.   { 
  73.    echo "name"
  74.    die(); 
  75.   } 
  76.  } 
  77. if ($action == "write"
  78.  $color = $_post["color"]; 
  79.  if (!eregi("[0-9a-fa-f]{6}",$color) || $color == "#000000"$color = ""
  80.  $color = "#".$color
  81.  $size = intval($_post["size"]); 
  82.  $name = htmlspecialchars(str_replace(array("n","r"),"",$_post['name'])); 
  83.  if (!$namedie("no name!!"); 
  84.  $ip = get_ip(); 
  85.  keeponline(); 
  86.   
  87.  $s = ""
  88.  $style = ""
  89.  $font = $_post["font"]; 
  90.  if ($font == "songti"$font = "宋体"
  91.  else if ($font == "heiti"$font = "黑体"
  92.  else if ($font == "kaiti"$font = "楷体_gb2312"
  93.  else $font = ""
  94.  $style .= (!$font)?"":"font-family:".$font.";"
  95.  $style .= (!$_post["bold"])?"":"font-weight:bold;"
  96.  $style .= (!$color || $color == "#")?"":"color:{$color};"
  97.  $style .= (!$size || $size == "16")?"":"font-size:{$size}px;"
  98.  $t = time(); 
  99.  $arr = explode("n",$_post['content']); 
  100.  if (count($arr) > 20) die('error'); 
  101.  for($i = 0;$i<count($arr);$i++) 
  102.  { 
  103.   $content = $arr[$i]; 
  104.   $content = trim($content); 
  105.   $content = str_replace(array("n","r"),"",$content); 
  106.   if (!$contentcontinue
  107.   $content = htmlspecialchars($content); 
  108.   $content = preg_replace("~[img](http://[a-za-z0-9.-_+%?]*)[/img]~i""<img src='$1' />"$content); 
  109.   $content = ($style)?"<span style='{$style}'>{$content}</span>":$content
  110.   $s.= $t."|".$name.":".$content."n"
  111.  } 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论