Welcome to Bo-Blog.
Dec 14

一年一度的网博会在上周落下了帷幕,除去许多全新的游戏,最吸引人的就是靓丽的Showgirl,但看着靓丽的美女难免受到过高的刺激,流鼻血。


注意边上那拍照的哥们


拍着拍着。。流鼻血了


ShowGirl赶紧给他一张纸巾


赶紧撤吧。。。

 

 

 

Nov 26

刚开始 郁闷了我好长时间..

找了好多地方,网上给出的办法

 

Discuz和jQuery的冲突有两点,在/include/javascript/common.js文件的
57~64之间有如下代码:

Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}

function $(id) {
return document.getElementById(id);
}

Discuz为了兼容低版本的IE,重写了Array对象的push方法,但在重写之前没有做任何判断,改为一下形式:

if(typeof Array.prototype.push === 'undefined') {
Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}
}

第二点就是Discuz也有$()函数,就只是为了实现getElementById?功能没有人家强大就别学人家用美元符号嘛,占用符号资源。应该学学百度,人家就用一个字符G,多低调不和别人争美元。
关于$()函数的冲突,jQuery中给出了解决方法,jQuery.noConflict(),把美元让给你(看看人家多大肚)。

我们的jQuery代码可以这样写:

var jq = jQuery.noConflict(); //把$让给第一个实现它的库,用jq代替
jq(function()
{
//**********************
}
);

但是 描述不是很清晰...

我自己改了下 ...解决 兼容问题 解决了

<script src="jQuery.js" type="text/javascript"></script>

<script type="text/javascript">
$(function() {
var jq=jQuery.noConflict(true); //将变量$的控制权让渡给其他库。这样可以确保jQuery不会与其他库的$对象发生冲突。
alert(jq("div").html());//正常 //alert($("div").html());//报错
});
</script>
<div> <p>aaaaaaaaaaaaaaaaa</p></div>
 
 
那为什么能 var jq=jQuery.noConflict(true) 这么写呢?
首先我们看jQuery的源代码:
noConflict: function( deep ) {
window.$ = _$;
if ( deep )
window.jQuery = _jQuery;
return jQuery;
}
明显 ,当deep==true的时候,返回jQuery.
所以我们var jq=jQuery.noConflict(true) 这样定义也就可以理解了。
所以cssrain就可以代替jQuery了。从而确保jQuery不会与其他库的$对象发生冲突。

 
Tags: , , , , , ,
Oct 13


Zend Guard加密后的PHP源程序需要环境中安装Zend Optimizer才可以运行,

同时Zend Optimizer在加密的过程中也可以实现优化代码的作用。


以下为各个Zend Guard版本与Zend Optimizer各版本的对应关系:


Zend Encoder / SafeGuard 3.1 (HOST ID) - Optimizer 2.5.x
Zend Encoder / SafeGuard 3.6 (Zend ID) - Optimizer 2.5.2
Zend Guard 4.x (Basic Encoding) - Optimizer 2.6.x
Zend Guard 5.0 (PHP 4, Basic Encoding) - Optimizer 2.6.x
Zend Guard 4.x (Full Obfuscation) - Optimizer 3.0.x
Zend Guard 5.0 (PHP 4, Full Obfuscation) - Optimizer 3.0.x
Zend Guard 5.0 (PHP 5, All Encoding) - Optimizer 3.3.x

Tags: , ,
Oct 12

网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考虑流量的话,大可以像pconline一样每个页面只显示一张图片,让用户每看一张 图片就需要重新下载一下整个页面。不过,在web2.0时代,更多人愿意用javascript来实现一个图片浏览器,让用户无需等待过长的时间就能看到 其他图片。

知道了一张图片的地址,需要把它在一个固定大小的html容器(可以是div等)里边显示出来,最重要的当然是需要知道这张即将显示的图片的宽和高,然后再结合容器的宽和高,按照一定的缩放比例使图片显示出来。因此,实现图片预加载就成为图片浏览器的核心功能了。

做过图片翻转效果的朋友其实都知道,要让图片轮换的时候不出现等待,最好是先让图片下载到本地,让浏览器缓存起来。这时,一般都会用到js里边的Image对象。一般的手段无非这样:
function preLoadImg(url) {
var img = new Image();
img.src = url;
}
通过调用preLoadImg函数,传入图片的url,就能使图片预先下载下来了。实际上,这里用到的预下载功能也和这基本一致。图片预下载下来后,通过 img的width和height属性,就能知道图片的宽和高了。但是需要考虑到,在做图片浏览器功能时,图片都是实时显示的。比如你点了显示的按钮,这 个时候才会调用上边类似的代码来加载图片。因此,如果你直接用img.width的时候,图片还没有完全下载下来。因此,需要用一些异步的方法,等到图片 下载完毕的时候才会再对img的width和height进行调用。

实现这样的异步方法实际上不难,图片的下载完毕事件也很简单,就是简单的onload事件。因此,我们可以写出下面的代码:
function loadImage(url, callback) {
var img = new Image();
img.src = url;

img.onload = function(){ //图片下载完毕时异步调用callback函数。
    callback.call(img);   // 将callback函数this指针切换为img。
};
}

好了,再来写一个测试用例。
function imgLoaded(){
alert(this.width);
}
<input type="button" value="loadImage" onclick="loadImage('aaa.jpg',imgLoaded)"/>

在firefox中测试一下,发现不错,果然和预想的效果一样,在图片下载后,就会弹出图片的宽度来。无论点击多少次或者刷新结果都一样。

不过,做到这一步,先别高兴太早——还需要考虑一下浏览器的兼容性,于是,赶紧到ie里边测试一下。没错,同样弹出了图片的宽度。但是,再点击load的时候,情况就不一样了,什么反应都没有了。刷新一下,也同样如此。

经过对多个浏览器版本的测试,发现ie6、opera都会这样,而firefox和safari则表现正常。其实,原因也挺简单的,就是因为浏览器 的缓存了。当图片加载过一次以后,如果再有对该图片的请求时,由于浏览器已经缓存住这张图片了,不会再发起一次新的请求,而是直接从缓存中加载过来。对于 firefox和safari,它们视图使这两种加载方式对用户透明,同样会引起图片的onload事件,而ie和opera则忽略了这种同一性,不会引 起图片的onload事件,因此上边的代码在它们里边不能得以实现效果。

怎么办呢?最好的情况是Image可以有一个状态值表明它是否已经载入成功了。从缓存加载的时候,因为不需要等待,这个状态值就直接是表明已经下载了,而从http请求加载时,因为需要等待下载,这个值显示为未完成。这样的话,就可以搞定了。

经过一些分析,终于发现一个为各个浏览器所兼容的Image的属性——complete。所以,在图片onload事件之前先对这个值做一下判断即可。最后,代码变成如下的样子:
function loadImage(url, callback) {
    var img = new Image(); //创建一个Image对象,实现图片的预下载
    img.src = url;
  
    if (img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
        callback.call(img);
        return; // 直接返回,不用再处理onload事件
    }

    img.onload = function () { //图片下载完毕时异步调用callback函数。
        callback.call(img);//将回调函数的this替换为Image对象
    };
};
经过这么一番折腾,总算是让各个浏览器都能满足我们的目标了。虽然代码很简单,但是却把图片浏览器中最核心的问题解决掉了,接下来你所要做的,仅仅是图片如何呈现的问题了。
Oct 10

 

师父是女的,那师父的老公叫什么?

2008-04-22 01:55:58 来自: 冷月° 仓小鼠(那似曾相识的一瞥...)

叫师公?那不就是师父的师父么?

那叫什么呢?

假设师父的老公和师父不是同门

Tags:
Oct 8

也许有一天因为种种原因忘记彼此

只不过有的人忘的快 有点人忘的慢

但是无论我们忘得快或是忘得慢

可生活还是要继续

我们总会熬过去......

所以那些失去的人们就要学会忘记

过去的东西总会被遗忘

在一起的人们应该懂得珍惜 珍惜今天..珍惜现在...

在线观看地址:

 

Oct 5

 

 

刚开始看的时候感觉没什么的电影 但是看到后面真的 好震撼:

尤其男主角的一句话:"我想给她的一切,她都有了。其实我想要的不就是给她幸福吗?

所以只要她快乐的,这快乐是不是我给的,能不能等到她,都不重要了。"

真的一句话诠释了爱情的真谛...爱情并不一定就要得到ta,而是要ta快乐...只要她(他)活得幸福就好!


最后看完电影我流泪了..( ~~~~(>_<)~~~~ ) 尤其结局超震撼的....

突然灵感而生想起了一首诗:

纤云弄巧,飞星传恨,银汉迢迢暗度。金风玉露一相逢,便胜却、人间无数。
柔情似水,佳期如梦,忍顾鹊桥归路。
两情若是久长时,又岂在、朝朝暮暮。

最后感谢导演让我做了一次心灵的旅行...大家有时间也来看看吧..

下面的这个是迅雷地址

Oct 3

用到二维数组排序,到手册里面查了下,有这样一个很不错的函数,和数据库里面的order by功能是一样的,把二位数组当成一个数据库的表。数组的key就相当于标的列,数组的value相当于标的行:
$XML_deed_temp=array(
array(’deed_id’=>1,’total’=>’b101′),
array(’deed_id’=>2,’total’=>’3′),
array(’deed_id’=>2,’total’=>’4′),
array(’deed_id’=>5,’total’=>’a5′),
array(’deed_id’=>8,’total’=>’a8′),
array(’deed_id’=>12,’total’=>’a12′),
array(’deed_id’=>11,’total’=>’a11′),
array(’deed_id’=>6,’total’=>’a6′)
);

上面的数组可以看成如下一个数据库表:
deed_id total
—————————-
1 b101
2 3
2 4
5 a5
8 a8
12 a12
11 a11
6 a6
——————————-
排序的时候先要取出其中的一列,然后就可以这样:
array_multisort($sortdeed,, SORT_ASC, $XML_deed_temp);
$XML_deed_temp就是要排序的数组,$sortdeed,就是要排序的列的数组(这个数组要先foreach $XML_deed_temp然后将deed_id那一列取出放到$sortdeed数组里面),如果要实现order by col1,col2这样的,可以把多个列取出进行排序,排序先按col1排,再按col2排

$XML_deed_temp=array(
array('deed_id'=>1,'total'=>'b101'),
array('deed_id'=>2,'total'=>'3'),
array('deed_id'=>2,'total'=>'4'),
array('deed_id'=>5,'total'=>'a5'),
array('deed_id'=>8,'total'=>'a8'),
array('deed_id'=>12,'total'=>'a12'),
array('deed_id'=>11,'total'=>'a11'),
array('deed_id'=>6,'total'=>'a6')
);
foreach($XML_deed_temp as $t_k=>$t_v){
$deed_id[]=$t_v['deed_id'];
$total[]=$t_v['total'];
//print_r($t_v);
}
array_multisort($deed_id, SORT_ASC, $total, SORT_ASC, $XML_deed_temp);
print_r($XML_deed_temp);
 
Tags: , ,
Sep 30

PHP5是一具备了大部分面向对象语言的特性的语言,比PHP4有了很多的面向对象的特性,但是有部分概念也比较绕人,所以今天拿出来说说,说的不好,请高手见谅. (阅读本文,需要了解PHP5的面向对象的知识)

首先我们来明白上面三个关键字: this,self,parent,从字面上比较好理解,是指这,自己,父亲,呵呵,比较好玩了,我们先建立几个概念,这三个关键字分别是用在什么地方呢?我们初步解释一下,this是指向当前对象的指针(我们姑且用C里面的指针来看吧),self是指向当前类的指针,parent是指向父类的指针。

Tags: , , , , ,
Sep 30

public:方法或者属性在任何作用域都可以访问到,而且这是默认的,如果没有为一个属性或方法指定访问修饰符,它将是public。

protected:方法或者属性只能从类或者继承类的一个成员中访问到。

private:方法或者属性只能从类的一个成员中访问到,而且无法从继承类的成员中访问到。经过private便签标记的方法或者属性可以在继承类中重新定义。每一个类只能看到它自己定义的私有方法。

Sep 30

在开始看这篇文章前 请首先读以下文章:

http://blog.bigqi.com/read.php?146

http://blog.bigqi.com/read.php?147

 
从PHP 5 开始 类的定义又增加了 abstract、final和static 关键字
1.abstract 关键字
 
面向对象程序通过类的分层结构构建起来.在单重继承语言如PHP中,类的继承是树状的.
一个根类有一个或更多的子类,再从每个子类继承出一个或更多下一级子类.
当然,可能存在多个根类,用来实现不同的功能.
用abstract定义的类不能被实例化。有一个函数为abstract的类,这个类就必须是abstract,子类必须
定义所有的父类中的abstract函数,子类中函数的作用域只能被扩大,不能缩小。
在一个良好设计的体系中,每个根类都应该有一个有用的接口,可以被应用代码所使用.而抽象类就可以提供多个实用的接口.
如果你建立了一个只有抽象方法的类,那么你就定义了一个接口(interface).

在抽象类中定义的方法,也都是抽象方法,
当然,抽象方法与普通的方法不一样,它只是子类中普通方法的一个占位符(只是占个地主不启作用),没有任何代码,也没有"{}"包含,而是以";"结束的.
 

abstract class aaa{
abstract function bbb(); // 这里没有代码的部分
}
 

当然,如果一个类中有一个或多个抽象的方法,那么这个类就成了抽象类.抽象类不能实例化,只能继承,
然后,实例化子类.值得注意的是,它的子类必须重复写所有方法(all method),这样,子类就成为普通的类,才可以实例化.
否则,子类中只要有一个抽象方法,那么子类必须声明是抽象类,在class关键字前加上abstract.
抽象的类的声明方法:
(1).使用abstact限定语.
//定义抽象类aaa为母类
abstract class aaa{
abstract function bbb();
abstract function ccc();
}
//用 extends 关键字 定义普通子类 childfromaaa
//继承aaa抽象类
class childfromaaa extends aaa{
//重写所有抽象类中的方法
public function bbb(){
//.....
}
public function ccc(){
//...
}
}
//实例化子类
$child=new childfromaaa;//right

Sep 29

版本更新:
迅雷5.9.8.1090(2009.9.27) 问题解决:
1、修正BHO导致浏览器崩溃、关闭异常的问题
2、修正多个迅雷看看播放组件导致的崩溃
3、修正一个迅雷界面主程序崩溃

Tags: , , ,
Sep 27

 

还记得异次元曾经给大家分享过谷歌免费的正版音乐服务吗?互联网的音乐服务越来越受到人们的喜爱了,然而传统的音乐在线收听目前已经不能够满足很多人的需求了,很多人可能更加需要基于自己喜爱音乐的风格的音乐推荐。社区作为最为活跃互动的平台,是 web2.0服务的大分支,而其中音乐分享社区因其多媒体、个性化元素而备受年轻人的青睐。随着Web2.0网站的普及,越来越多音乐推荐分享网站发展起来。

Sep 27

一套QQ默认表情改版的 方块脸QQ表情 =.= 四四方方的脸,很有味道哦。我发给同学还他还以为自己眼花了哈哈~。嗯!收集了几天终于差不多收集全了。这表情太低调了也不知道作者是谁。就不介绍了,来几个预览吧:(ps:因为是用QQ2009导出的,所以可能也要QQ2009才能用哦·)

       

下载地址:http://www.damipan.com/file/3uMTGUR.html

Tags: , ,
Sep 27

好多人都有过没听到闹钟响而耽误事的经历吧,所以就有人做了下面这个玩意——号称世界最响的闹钟。作者使用两个发音量可达140分贝的电子喇叭一个电子闹钟以及一个12V的笔记本电池制成了这款闹钟,实际效果如何?估计用脚趾头你也能想象的出来了。

 

世界最响的闹钟

分页: 1/9 第一页 1 2 3 4 5 6 7 8 9 下页 最后页 [ 显示模式: 摘要 | 列表 ]