PHP的unescape()函数

昨天把自己的留言本后台回复改成AJAX无刷新的时候POST数据到服务器端中文总是乱码,郁闷的很~后来在网上查了一下才知道 JavaScript 用 XmlHTTP POST数据时中文是被当成 UTF-8 编码发送出去的,一个解决的方法是在客户端把中文用 JavaScript 的 escape() 函数编码了再到服务器端解码,可是在服务器端怎么解码呢,那就看下面一段我从网上找到的 PHP 中和 JavaScript 的 unescape() 函数功能一样的解码函数吧(这句话怎么听着有点别扭??)

PHP代码

function unescape($str){   
 $str = rawurldecode($str);    
 preg_match_all("/%u.{4}|&#x.{4};|&#d+;|.+/U",$str,$r);    
 $ar = $r[0];   
 foreach($ar as $k=>$v){   
  if(substr($v,0,2) == "%u"){   
   $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4)));   
   }elseif(substr($v,0,3) == "&#x"){   
   $ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));   
   }elseif(substr($v,0,2) == "&#"){   
   $ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));   
  }   
 }   
 return join("",$ar);   
}


Pader 2008-6-1 1

给留言本做了个小后台

一直没有后台,最近花了点时间为我的“用心聆听留言本”做了一个小后台,简单的很,呵呵。
仍然保持文本存储,优化了一些操作的方法,现在整个留言本源码有 19 个文件,总大小 41.9KB,当然,写的那个模仿 Session 的 Impression 生成的临时数据就不算了,可以随时删除,如果把改成 PHP 自带的 Session 进行传递,总程序肯定会更小了,过两天再一时兴起把清理留言和搜索的功能加上去就算完了。

[attach=42]

[attach=43]

错误提示也是用的一样的方法:
[attach=44]

 28号那天奥运圣火来合肥,本来我们学校和一个集团(哪个集团呢,大家应该能猜到)说好了大家在那天去参加他们的助威团,27号中午还召集我们开了会,正当我们热血沸腾的时候下午又把我们叫去说不去了,学校里五百个学生的热血就这样被浇灭了,哎,原因是中央组委会下发文件说国丧期间,一切从简,呵呵,我们还是能理解的,叭一的想法就是遗憾。。。
最近发生了很多事,都想记下来,可是现在正发烧,头晕,什么都想不起来,就像以前一样,本来有很多东西想写,可是一登陆自己的网站便什么都想不起来了,晕~

另外把网站下方的小统计程序改了个文本版的,突然觉得这小东西用 MySQL 数据库是不是太浪费了,又改成了个单用户的文本版。
自己研究吧。

PHP代码
  1. <?php   
  2. /*  
  3. 网站访问统计程序TXT版  
  4. 统计全部点点击,全部人次,今日点击,今日人次。  
  5. 数据判断根据存入数据库、现在时间和存入用户机器的COOKIE判断  
  6. 每台计算机每天只可以增加全部人次和今日人次一次,全部点击和今日点击每打开网页一次便增加一次  
  7. 设计 BY pader  
  8. E-mail: [email protected]  
  9. */  
  10. $datafile = "count.txt";  //数据文件   
  11. $cookiename = "vgotcnstatis"//COOKIE的名称   
  12.   
  13. function writedata($indata){ //写数据函数   
  14.  global $datafile;   
  15.  $iswrite = false;   
  16.  if($fp = fopen($datafile,"w")){   
  17.   if(flock($fp,LOCK_EX)){   
  18.    if(fwrite($fp,$indata)){$iswrite = true;}   
  19.    flock($fp,LOCK_UN);   
  20.   }    
  21.   fclose($fp);   
  22.  }    
  23.  return $iswrite;   
  24. }   
  25.   
  26. header("programa:no-cache");  //没有缓存   
  27. $today = date("Ymd"); //今天   
  28.   
  29. //判断数据文件是否存在   
  30. if(file_exists($datafile)){   
  31.  $datagot = file_get_contents($datafile);   
  32.  $row = explode("|",$datagot);   
  33.  list($day,$all_click,$all_once,$today_click,$today_once,$about) = $row;   
  34.  $all_click++;   
  35.  if($day == $today){   
  36.   $today_click++;   
  37.   if((!$_COOKIE[$cookiename]) or ($_COOKIE[$cookiename] < $today)){   
  38.    $all_once++;   
  39.    $today_once++;   
  40.   }   
  41.   setcookie($cookiename$today, time()+3600*24);   
  42.  }else{   
  43.   $today_click = "1";   
  44.  $all_once++;   
  45.  $today_once = "1";   
  46.  setcookie($cookiename$today, time()+3600*24);   
  47.  }   
  48.  $datastring = $today."|".$all_click."|".$all_once."|".$today_click."|".$today_once;   
  49.  writedata($datastring);   
  50. echo <<<EOF   
  51. <!--   
  52. document.write("全部点击:$all_click,全部人次:$all_once,今日点击:$today_click,今日人次:$today_once");   
  53. //-->   
  54. EOF;   
  55.   
  56. }else//否则即如果数据文件不存在   
  57.  echo "数据文件不存在,正在创建数据文件...<br>";   
  58.  if(@touch($datafile)){   
  59.   echo "<font color=red>创建数据文件成功,准备写入初始数据...</font><br>";   
  60.   $datastring = $today."|1|1|1|1";   
  61.   if(writedata($datastring)){   
  62.    echo "<font color=red>写入初始数据成功,现在可以正常使用统计功能了.请刷新页面</font><br>";   
  63.   }else{   
  64.    die("<font color=black>写入初始数据失败!</font><br>");   
  65.   }   
  66.  }else{   
  67.    die("<font color=black>创建数据文件失败!</font><br>");   
  68.  }   
  69. }   
  70. ?>  
Pader 2008-5-30 0

哀悼

[attach=40]

新华社北京5月20日电 国务院抗震救灾总指挥部20日发布汶川抗震救灾进展情况:

截至5月20日18时,四川汶川8级地震已造成40075人遇难,247645人受伤;至20日12时,累计失踪32361人。总参作战部报告,截至19日24时,抢险救灾人员累计解救、转移被困人员360159人,其中从废墟中挖掘出来的生还者共计6375人。

[attach=41]

据中国地震局报告,截至20日12时,共监测到4级以上余震159次,其中5级以上26次,6级以上4次。

据财政部报告,截至20日14时,各级政府共投入117.27亿元。其中,中央财政投入86.79亿元,地方财政投入30.48亿元。

据民政部报告,截至20日13时,全国共接收社会各界捐赠款物139.25亿元,其中捐款125.16亿元。截至20日13时,民政部、军队和各地民政部门共向灾区调运救灾帐篷27.8462万顶、棉被78.3984万床、棉衣178.36万件。

据国家发展改革委报告,宝成铁路109号隧道和广岳支线永兴——雪门寺段仍在全力抢修中。国家发改委和粮食局部署增加国储玉米拍卖数量,稳定国内玉米和饲料价格。19日,储备粮出库3485吨,储备食用油出库76吨,灾区主要副食品价格与前日基本持平。国家物资储备局紧急组织出库储备成品油,19日12时至20日12时,累计出库发运成品油11243吨。

据工业和信息化部报告,至20日12时,汶川、理县、茂县、青川、平武、黑水、北川、绵竹8个重灾县城继续保持对外通信,8县下辖的201个乡镇中,有146个通信基本正常。

据电监会报告,截至20日12时,四川、重庆、甘肃和陕西电网主网运行正常。其中,重庆、甘肃和陕西电网受损电力设施基本恢复,用电负荷已连续6天达到了灾前水平。四川的北川县、茂县、卧龙尚未恢复供电。其余受灾县区已基本恢复供电或部分恢复供电。

据住房和城乡建设部报告,截至5月20日,四川、甘肃、云南等地,因汶川地震受损水厂(池)共292个,目前已修复25个;受损供水管道共2186处7936.5公里,目前已修复供水管道累计1787处87.5公里。

据广电总局报告,四川有84个广播电视台站及有线网络受损,已恢复32个,甘肃、陕西、重庆也有部分地区的发射塔、有线广播电视光缆、杆线等广播电视设备设施严重受损。

据国务院港澳事务办公室报告,截至20日,身在四川未能与在港家人及时联络的101名香港人士中,已有96人与家人取得联系。灾情发生时,当地没有来自澳门的旅行团。此外,截至20日,香港民间捐款已逾10亿港元,澳门民间捐款已逾2亿港元。

Pader 2008-5-21 0

记录

12日14时28分04.0秒,在四川汶川县发生M7.8级地震,包括北京、上海、贵州、重庆、湖北、湖南、江西等全国各省市均有震感。据有关部门统计,截止5月17日14时,汶川地震已造成28881人死亡,伤病198347人,倒塌房屋312.8万间,损坏房屋1560.9万间。

Pader 2008-5-18 0

祖国,我爱你

今天打开QQ,看到上面的标题,网上银行里只剩十几块钱,捐了十块,一切会好起来的。

哀悼

很多年了,中国一直在灾难中前行。
今年,是一个多事之年。
四川  汶川
上万人在这一夜失去至亲。
上万人被瓦砾掩埋着。
那里有很多无可奈何消逝的生命。
那些消逝的生命不是别人。
正是我们的同胞。

我们大多数人能做的,
不再是为逝者默哀,为伤者祈祷,为平安者祝福。
天灾面前,人是那么渺小。
但面对天灾,
我们从来都不是弱者。
让我们同呼吸、共命运
手手相牵,心心相连,
为同胞们恭献一点勇气,一点力量。

过个年吧,雪灾了
传个火炬吧,藏独了
发展个农村医疗吧,手足口了
买点股票吧,大小非了
坐个火车吧,出轨了
在家呆着吧,地震了!

天将降大任于斯国也,必先撞其火车,抢其火炬,震其国土,涨其物价,空乏其民,行拂乱其股市!大国崛起之征兆也。

Pader 2008-5-14 0