浏览模式: 描述 | 列表
全部文章
作者: 我不是鱼 (2009-09-28 22:06)分类: PHP
标签:
浮点数
转整
PHP代码
- <?php
- $a = 8.45*100;
- var_dump($a);
- var_dump(intval($a));
-
- $a = 845*1.00;
- var_dump($a);
- var_dump(intval($a));
- ?>
-
这段程序,我以为输入4个都是845。不过结果出乎意料。php 5.29输入的结果是
float(845)
int(844)
float(845)
int(845)
为什么两个都是845的浮点数,转整时一个事845一个是844?php手册上的说法是:
显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。
不过仍然很费解
PHP代码
- <?php
- var_dump(floor((0.1+0.7)*10));
- var_dump(floor((0.1+0.6)*10));
- ?>
两个都是 fl...
查看原文评论 (0) | 浏览 (5538)
作者: 我不是鱼 (2009-07-30 17:52)分类: PHP
标签:
POST
原始数据
之前要保存flash POST 过来的图片数据。一开始以为这个数据在 $_POST 数组里,但事实并不是。后来才知道在 $GLOBALS['HTTP_RAW_POST_DATA'] 里。所以备忘下。
在网上找了一下两者的区别:
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。
并且如果 $GLOBALS['HTTP_RAW_POST_DATA'] 不存在时,可以通过 file_get_contents('php://input'); 获...
查看原文评论 (3) | 浏览 (9861)
作者: 我不是鱼 (2009-07-30 17:33)分类: PHP
标签:
IP伪造
发现有些程序,如discuz。在取ip的先判断 $_SERVER['HTTP_CLIENT_IP'] 再判断 $_SERVER['HTTP_X_FORWARDED_FOR'] 最后 $_SERVER['REMOTE_ADDR']。测试了一下发现 $_SERVER['HTTP_CLIENT_IP'] 和 $_SERVER['HTTP_X_FORWARDED_FOR'] 都可以伪造过来。getenv('HTTP_CLIENT_IP') 和getenv('HTTP_X_FORWARDED_FOR') 也是一样的情况。
PHP代码
- <?php
- $fp = fsockopen("localhost", 80, $errno, $errstr, 30);
- if (!$fp) {
- echo "{$errstr} ({$errno})<br />\n";
- exit;
- }
-
- $out = "GET /xuance/tttt.php HTTP/1.1\r\n";
- $out .= "...
查看原文评论 (0) | 浏览 (11950)
作者: 我不是鱼 (2009-07-12 22:04)分类: 其他
标签:
菠萝
高州
昨天妈妈寄了菠萝上来,虽然不是很大个,不过有3个。从车站搬回来几乎把我累坏。今天心血来潮,发几个图片上来。
3个菠萝
菠萝是家乡高州对这种水果的一种称呼吧,书名叫菠萝蜜。在茂名,湛江比较多。又分干包和湿包,其中干包最为好吃。可能很多人没有吃过,甚至也没有见过菠萝。和榴莲有点相似,不过我不怎么喜欢吃榴莲,菠萝是我比较喜欢的水果之一。
家里的两颗菠萝树都是我种的,俗话说“种瓜得瓜,种豆得豆”,种了菠萝可以品尝收获的喜悦。我还记得那是很小的时候,有天晚上村里的仙达大叔送给我家一个菠萝,吃完菠萝后我就把一颗菠萝核种到一个小盘子上,发芽后就移栽到地堂边。地堂边原本是种了两棵秋芒,后来都被牛放倒了。第二棵是之后一年种的,本来是两棵小苗,本希望他们可以长合在一起。不过事与愿违,后来就砍掉了相对小的那棵。第一次结果是高一的时候,只结了两个。不过尝过之后就每年都会惦记着。高三那年是大丰收。后来到广州读书之后每年都比较少回去,不过有果实的话爸爸,妈妈都会寄上来。
妈妈说今年结二三十个,也算是大丰收。不过自从搬上高州之后,乡下就没有一个人看着,之所以每年都有菠萝吃,是因为村里的人大多的比较好。但这么好吃的菠萝,肯定...
查看原文评论 (7) | 浏览 (9489)
作者: 我不是鱼 (2009-06-30 13:55)分类: Javascript
标签:
iframe
name
iframe 的name可以是link或者form的target,将link或form打开到这个iframe上。
之前在IE遇到过设置不了iframe的name属性
JavaScript代码
- var iframe = document.createElement('iframe');
- iframe.name = 'ifr';
-
上面两种方式都无法设置。后来找到原来也可以这样创建
JavaScript代码
- var iframe = document.createElement('<iframe name="ifr"></iframe>');
这样在IE中就没问题了,但这种方式在firefox中是无办法通过的。所以最后
JavaScript代码
- try{
- var iframe = document.createElement('<iframe name="ifr"></iframe>');
- ...
查看原文评论 (3) | 浏览 (7472)
作者: 我不是鱼 (2009-06-20 21:24)分类: Javascript
标签:
js
数组
引用
举个例子说明下
JavaScript代码
- <script type="text/javascript">
- var pic = thumb = new Array();
- for(var i=0; i<2; i++){
- pic[pic.length] = i;
- thumb[thumb.length] = i;
- }
- </script>
这样赋值后原以为 pic和thumb的值都是 [0, 1]。其实不然,它们两个的值都是[0, 0, 1, 1].
原因是这种复制方式引起的 var pic = thumb = new Array(); js数组是引用传递的。
但如果是字符串,这样:var pic = thumb = ''; 又不会有这个问题。
数组改成这种方式就没有问题了
var pic = new Array(), thumb = new Array();
查看原文评论 (1) | 浏览 (8821)
作者: 我不是鱼 (2009-03-10 18:40)分类: Javascript
标签:
JavaScript
压缩
Dean Edwards 的php版的 JavaScript Packer 是一个非常好用的JavaScript压缩工具。支持几个级别的压缩。不过我用来压缩一些程序后发现跑不起来,未压缩前语法的没问题的,而且换行结束的地方都有分好。压缩后反而语法有错。于是找了一下原因终于发现,原来是一正则出了问题。打开
class.JavaScriptPacker.php
查找
PHP代码
- $parser->add('/;+\\s*([};])/', '$2');
注释掉此行,即改成:
为什么这个会出错呢?举个例子说明一下
JavaScript代码
- function aa(){
- for(var i=0; i<4; bb(i++));
- }
不注释那一句的话压缩后变成
JavaScript代码
- function aa(){for(var i=0; i<4; bb(i++))}
没有逗号自然就语法出错了。
查看原文评论 (0) | 浏览 (4945)
作者: 我不是鱼 (2009-03-04 12:05)分类: Javascript
标签:
htmlarea
编辑器
redo
undo
htmlarea编辑器速度还是挺快的,我比较喜欢用。但htmlarea编辑器的redo 和 undo 在ie下一点反应也没有,但在firefox下正常。原来是ie下默认是关闭了undo功能的。打开htmlarea.js,查找
JavaScript代码
- this._customUndo = false;
改成
JavaScript代码
- this._customUndo = true;
redo,undo就可以用了。
另外如果出现 'HTMLArea.I18N.tooltips' is null or not an object 的错误。则lang下的语言包问题。而且这个错误很无厘头。后来我直接用json_encode把中文全部转成类似于这样的形式 \u9760\u5de6 就好了。
查看原文评论 (2) | 浏览 (4450)