無標題文檔

PHP 5.3,你准备好了吗?

官方于 8 月 1 日推出了 PHP 5.3 的首个 aplha 版本 ,相比期前的例行版本升级,此次的更新有更为重要的意义。

根据描述,主要的改进内容如下

  • Namespaces (documentation maybe out dated)
  • Late static binding and __callStatic
  • Lambda functions and closures
  • Addition of the intl, phar (phar is scheduled for some more work a head of alpha2), fileinfo and sqlite3 extensions
  • Optional cyclic garbage collection
  • Optional support for the MySQLnd replacement driver for libmysql
  • Windows older than Windows 2000 (Windows 98, NT4, etc.) are not supported anymore (details)
  • New syntax features like NOWDOC, limited GOTO, ternary short cut \"?:\"

是的,可以看见很多计划在 PHP6 实现的功能,都「提前」到了 PHP 5.3 中。

个人认为最为重要的是新加入的 Namespaces(命名空间)、 Lambda 、以及 closures(闭包) 等特性。有了这些新的特性,我们这些思维已经「僵化」的 coder 又能玩出新的花样了。

接下来的几天,我会撰写几篇有关 PHP 新特性相关的摘记,请期待(但愿不是放「空头支票」)。

表格元素内容的定位

CSS 中的 position 属性 可以很容易的将指定的元素定位到理想的位置。但在使用这一属性时需要注意,尤其是在表格元素中。为了说明此问题, 我们先来看个 DEMO

点击按钮后,图片所在的 td 的 CSS 属性 position 定义成 relative,但是除 Exploer 外其内部的绝对定位的层,没有重新定位到「期望的位置上」。

在这里有个详细的讨论 ,主要的原因可以基本上认定为 Exploer 与其他浏览器针对表格元素的理解不同所致。

根据 W3C 的相关描述

The position and size of an element's box(es) are sometimes calculated 
relative to a certain rectangle, called the containing block of the element.

另,感谢 圆心提供另个参考来源

The effect of 'position:relative' on table-row-group, 
table-header-group, table-footer-group, table-row, 
table-column-group, table-column, table-cell, and 
table-caption elements is undefined.

可以认为定位的父容器应为块(block)元素(td 默认的 display 属性为 tab-cell),从上面的内容可以看出,针对'position:relative' 这一属性对于大部分的表格元素(display:table-*)而言是未定义的,而 Exploer 则没有遵循这一规范(所以得到了「期望的结果」)。

其实将 DEMO 中的相应 td 的 CSS 属性改成 display:block; 就能更好的说明问题(注意,将 td 的 display 属性改成 block,严格意义上理解,它已经不是表格的一部分)。

要解决这问题,目前已知的一种做法就是在 td 中再套一层 div 等 block 元素。

这可能这又引起的另个问题,就是无法像表格元素一样垂直居中,不过我们 可以参考这里的解决方案 (更新, 还有 小虎 的另种解决方案 )。

--EOF--

Javascript Packer

这是个 Javascript 压缩 + 混淆器,由于 YUI Compressor 是用 Java 实现的,所以我考虑做了 PHP 实现(不要纷争这两门语言之间的信仰问题)。

注:本程序基于 dewards 的 PHP Javascript Packer 封装。原作者与本人不对使用此脚本造成的一切后果负责(很无情,对吧)。

https://friable.rocks/_/2009_11_05/775565f4f2ca.jpg

与期前 第一版的 Javascript 批量压缩器 不同,此工具具有混淆代码的功能。使用地址如下

http://friable.rocks/javascript_packer/ ,欢迎点评。

--Splite--

同时得感谢 圆心 的 Javascript 支持,是他帮忙解决了 eval JSON 数据时,本人的一个「弱智」的问题,建议以后使用这样解析(可能是我火星了):

var json = eval('(' + req.responseText + ')');

详细 参见这里

很无耻的用上了公司的 CDN 链接,感觉倍有「安全感」(嘘,小声点)。重新审视代码,的确从某个角度上说,使用 YUI 的代码比 jQuery 的要「严肃」得多。

我的照片

嗨!我叫「明城」,八零后、码农、宁波佬,现居杭州。除了这里,同时也欢迎您关注我的 GitHubTwitterInstagram 等。

这个 Blog 原先的名字叫 Gracecode.com 、现在叫 「無標題文檔」 。 要知道作为码农取名是件很难的事情,所以不想在取名这事情上太费心思。

作为八零后,自认为还仅存点点可能不怎么被理解的幽默感,以及对平淡生活的追求和向往。 为了避免不必要的麻烦,声明本站所输出的内容以及观点仅代表个人,不代表自己所服务公司或组织的任何立场。

如果您想联系我,可以发我邮件 `echo bWluZ2NoZW5nQG91dGxvb2suY29tCg== | base64 -d`

分类

搜索

文章