Hot For Coding
PHP魔术方法介绍

Prefix

PHP把所有__开头的方法当做魔术方法,所以任何自定义的方法都不能是__开头 php提供的重载,是指动态的创建属性或方法。重载是通过魔术方法来实现的。这些魔术方法的参数不能饮用传递,__get()__set()__isset()__unset()实现类属性重载。

__get()

当访问类中不可访问的属性时,将调用__get()方法

Rule

当访问类中不可访问的属性时,根据不同的情况会调用__get()__set()__isset()__unset(),其中当访问属性时,使用函数isset()empty()时,将调用__isset()方法,使用unset()函数时,将调用__unset()方法。

...

READ ALL

CentOS网络配置

修改IP地址

修改对应网卡的IP地址的配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0 修改以下内容

DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BROADCAST=192.168.0.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址
IPADDR=12.168.1.2 #如果设置网卡获得 ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址
IPV6INIT=no
IPV6_AUTOCONF=no
NETMASK=255.255.255.0 #网卡对应的网络掩码
NETWORK=192.168.1.0 #网卡对应的网络地址
ONBOOT=yes #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备

...

READ ALL

MySQL取出随机文章的方法

随机文章是最常见的应用了,可能看起来比较容易,但实际中还是要回掌握正确的方法会让你省去许多代码量。如果你要随机取出数据库里的文章,有以下三种做法。

用PHP算出随机ID

先求得最大ID,然后写一个函数从1到最大ID之间随机取出N个不重复的,然后到数据里取出来,这种方式的前提是你的文章ID要连续。

取出所有文章ID从中选择

也是用PHP先从数据库里取出所有文章ID,然后使用PHP的shuffle()函数打乱数组,再取数组的前N个元素达到随机效果。这种比较麻烦,需要先取出ID,然后打乱然后再到数据库里取信息,不推荐。

使用MySQL函数RAND()

这个函数跟JS的一样可以产生0到1之间的随机数,但巧妙利用就可以实现取出随机文章的效果。

...

READ ALL

JavaScript写的一个随机点名程序

这个其实是对JavaScript的Math.random函数一个练习方式,先把所有人得名字预先写好在一个数组里,然后让数组里的值快速的显示在区域内,当你按停的时候滚动就会停止达到随机效果。

DEMO

思路

  • 定义一个名字数组,作为资源池
  • 有一个每隔20毫秒就随机从资源池里随机获取一个显示在页面上
  • 手动停止后,最后显示在页面上的名字就是随机出来的名字

Code

// Nicholas Lee www.qttc.net

var isRun = true;
var a = ["张三", "李四", "王五", "赵六"];
var a2 = new Array();
function action (str) {
var s = document.getElementById("bt").value;
  if(s === "开始"){
    isRun = true;
    run();
    document.getElementById("bt").value = "结束";
  }else{
    isRun = false;
    document.getElementById("bt").value = "开始";
  }
}
function run () {
  var i = Math.floor(Math.random() * a.length + 1) - 1;
  document.getElementById("show").innerHTML = a[i];
  if (isRun === false) {
    var b = true;
    for (var j in a2) {
      if (a2[j] === i) {
        b = false;
      }
    }
    if (b) {
      a2[a2.length] = i;
      return;
    }
  }
  setTimeout("run()", 20);
}

...

READ ALL

CSS3特性总结

CSS3现在是推得如火如荼了,目前主流浏览器都开始逐步支持CSS3,看来CSS3在一定时间内会成为主流。现在我们来看看CSS3的一些新特性。

实现图片效果

圆角、半透明背景、阴影,特别是文字阴影、渐变等等,这些昔日依赖图片实现的视觉效果,在CSS3里都可以使用代码搞定。

盒容器变形

CSS3中可以在2D或者3D空间里操作容器的位置和形状,如旋转、缩放、移动等等。如地球模型的展示,可以使用鼠标拖动、旋转、缩放等等。

支持自定义字体

这一点是值得学习使用的,在以前的CSS版本中,字体只能是客户端支持,现在是服务器端支持了。意思就是你可以把一些特殊字体文件上传到服务器,当有人浏览的时候会自动从服务器上下载字体从而达到所有客户端使用的字体都一致,这样可以更好的呈现页面,否则普通的网站就只能以默认字体显示了。但字体文件不能太大,否则下载时间过长也会影响打开网页速度。

...

READ ALL

CSS3 border-radius 圆角

border-radius

在CSS3以前,要实现圆角大多使用图片,而在CSS3里实现圆角只要添加一个圆角属性border-radius即可实现,虽然部分浏览器不支持CSS3,但未来一定会向CSS3靠拢的。

div {
  width: 200px; 
  height: 50px;
  background: red; 
  border-radius: 10px;
}

以上代码里的border-radius就是实现圆角语句,值越大圆角越大,支持各种单位,多值方式,如四个值分别是上右下左。

div {
  width: 200px; 
  height: 50px;
  background: red; 
  border-radius: 10px 5px 0 15px;
}

...

READ ALL

开博之篇!

关于域名

域名注册已有一年多,并且好米已经不多,感觉四个字母比较好记就定了。开始折腾的论坛系统最终还是回归到博客系统,感觉博客更值得回忆。

写过博客

其实,我一直都有写博文的习惯,在新浪博客火热那会我就已经开始,平日七嘴八舌的写。但毕竟生活阅历与知识有限,也不能写些什么好的文章,所以思来想去还是搭建一个博客,写点自己的擅长的Web技术博文吧。

WordPress

做为一个码农,我就一直想自己写一个博客系统,但由于精力有限所以最终还是选择了WordPress系统。说实话WordPress系统挺强大,但也正因为强大所以导致系统臃肿,特别是WordPress的自动草稿让我有点反感(后来,在2012年5月的时候我就放弃了WordPress系统,自个写了博客系统)。空间是在淘宝随便买了一个美国VPS,开始挺好用(后来蜗牛速度让我毅然放弃投向Linode)。

...

READ ALL