乳房太大必要时要缩小_美美生活馆

pack 和 unpack 的使用(转载)

08月 29th, 2008 by Skylin

用了很久php了却很少有机会用php进行一些二进制操作。 最近用php写一个socket客户端连接一个用C++语言开发的游戏服务端。 服务器端开发人员使用了二进制的形式来定义协议的格式。协议格式如下: 包头(2bytes)+加密(1byte)+命令码(2bytes)+帧内容 1.包头的内容是记录帧内容的长度; 2. 加密:0表示不加密,1表示加密; 3. 命令码为服务端命令识别符号; 一开始不了解php原来有pack可以来组装二进制包, 走了弯路,让服务端开发人员用C语言帮忙开发了的几个内存操作函数,按照协议规则返回二进制包,然后我将这几个方法编译成一组扩展函数供php使用。 话归正题,本文是介绍如何使用pack和unpack这两个方法的。php官方手册举例太少,不能很容易理解,特别是那些格式化参数的使用。 转摘的参数中文说明: pack/unpack 的摸板字符字符 含义 a 一个填充空的字节串 A 一个填充空格的字节串 b 一个位串,在每个字节里位的顺序都是升序 B 一个位串,在每个字节里位的顺序都是降序 c 一个有符号 char(8位整数)值 C 一个无符号 char(8位整数)值;关于 Unicode 参阅 U d 本机格式的双精度浮点数 f 本机格式的单精度浮点数 h 一个十六进制串,低四位在前 H 一个十六进制串,高四位在前 i 一个有符号整数值,本机格式 I 一个无符号整数值,本机格式 l 一个有符号长整形,总是 32 位 [...]

Posted in PHP | No Comments »

PHP创建简单的excel文档

08月 29th, 2008 by Skylin

可以通过PHP来产生EXCEL档
—————————-
Excel Functions
—————————-
将下面的代码存为excel.php ,然后在页面中包括进来
然后调用
1. Call xlsBOF()
2. 将一些内容写入到xlswritenunber() 或者 xlswritelabel()中.
3.然后调用 Call xlsEOF()
也可以用 fwrite 函数直接写到服务器上,而不是用echo 仅仅在浏览器上显示。
<?php
// —– begin of function library —–
// Excel begin of file header
function xlsBOF() {
echo pack(”ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0);
return;
}
// Excel end of file footer
function xlsEOF() {
echo pack(”ss”, 0×0A, 0×00);
return;
}
// Function to write a Number (double) into Row, Col
function xlsWriteNumber($Row, $Col, [...]

Posted in PHP | No Comments »

谷歌中国地图开始支持卫星地图了

08月 28th, 2008 by Skylin

消息来至:China Google Maps API

“Google Maps API开始支持中国地图”以后,谷歌地图( http://ditu.google.cn ) 开始和 Google 地图( http://ditu.google.com ) 一样,开始支持卫星地图了。并在上海北京等大城市支持“交通流量”功能。同样,在此之前,搜狗推出最高分辨率达到了0.5米/像素卫星影像地图。
可以看出,在“关于加强互联网地图和地理信息服务网站监管的意见”出来以后,搜狐和谷歌公司的步伐明显加快,去年愚人节的消息“Google收购Mapabc和腾讯推出卫星软件”已经实现了部分。

Posted in 闲聊 | No Comments »

有道推出国内首个自主研发翻译系统 挑战谷歌

08月 28th, 2008 by Skylin

小道消息,小道消息,这段时间网易旗下的有道搜索推出了一项国内首个自主研发的翻译系统测试版,网址:http://fanyi.yodao.com
我马上就使用了一下这个翻译系统,并且与GOOGLE的翻译系统做了一下简单的比较
比较的文字是”网易科技讯 8月21日消息,网易旗下有道搜索今日推出在线翻译服务测试版,成为国内首家采用自主技术开发机器翻译的搜索引擎厂商。”
有道翻译的结果是”Netease technology (August 21, launched its yodao search today netease online translation service, becomes the first beta independent technological development in machine translation of search engine manufacturers.”
google翻译的结果是”Netease technology - August 21 - Netease search today launched its proper way online translation services in beta, became the first independent technology development using machine translation of [...]

Posted in 闲聊 | No Comments »

flash as3强制垃圾回收

08月 27th, 2008 by Skylin

AVM2理论上是自带垃圾回收机的,但是具体何时进行垃圾回收,理论上非人为所能控制,而我们若要强制启用垃圾回收机,则需要用一些非正规手段,比如如下会提到的手段。
关键字:垃圾回收
核心hack技术
try{
new LocalConnection().connect(”MoonSpirit”);
new LocalConnection().connect(”MoonSpirit”);
}catch(error : Error){
}
运行上述代码,可强制执行一次垃圾回收机。

Posted in FLEX3 | No Comments »

屏蔽FLEX右键菜单以及实现自定义的FLEX右键功能

08月 27th, 2008 by Skylin

完全屏蔽FLEX右键菜单比当初想象的要难一些,因为大多数FLEX文档中仅仅介绍了如何隐藏一部分FLEX右键菜单,例如:
var contextMenu : ContextMenu = new ContextMenu();
contextMenu.hideBuiltInItems(); // 隐藏一些内建的鼠标右键菜单项
但 是这个功能不能隐藏”设置”和”关于”右键菜单,而在一些应用中,希望能够利用鼠标右键完成一些操作功能,例如绘图程序和游戏等,这时候右键菜单就是”欲 除之而后快”了.但在FLEX中监听mouseDown捕获不了右键事件,而在ContextMenu的Select事件也无法屏蔽.
在网上发现了一篇相关的BLOG,地址如下:
http://www.flex-flex.net/blog/article.asp?id=12
其基本思路为:
1,在FLEX中利用外部接口注册一个函数, 作为接收外部(HTML)右键事件的入口
2,在FLEX应用所在的HTML中拦截鼠标右键事件,调用FLEX外部函数,并取消事件的广播,以阻止事件到达FLEX应用.
3,在FLEX应用程序上监听mouseOver事件,并记录当前鼠标所在对象
4,当入口函数接收到HTML发送的右键事件后,模拟生成一个鼠标右键事件(buttonDown = false), 并发送到当前对象
5,在对象的mouseDown处理函数中,根据buttonDown的标志,分别处理鼠标左右键事件
这个思路比较清晰可行, 鼠标右键事件的流程为:
HTML鼠标右键事件—-FLEX外部函数—–模拟的鼠标右键事件——相应的处理函数
具体的实现为:
1, 在FLEX所在的HTML增加(注意根据自己的OBJECT ID更改”FlexTest”)
<script>
function onNsRightClick(e){
if(e.which == 3){
FlexTest.openRightClick();
e.stopPropagation();
}
return false;
}
function onIeRightClick(e){
if(event.button > 1){
FlexTest.openRightClick();
parent.frames.location.replace(’javascript: parent.falseframe’);
}
return false;
}
if(navigator.appName == “Netscape”){
document.captureEvents(Event.MOUSEDOWN);
document.addEventListener(”mousedown”, onNsRightClick, true);
}
else{
document.onmousedown=onIeRightClick;
}
</script>
2, 修改FLEX的MXML
增加初始化和MOUSEOVER事件处理函数
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”absolute”  initialize=”init()” mouseOver=”getMouseTarget(event)” >
增加MX SCRIPT
import mx.events.MenuEvent;
import mx.controls.Alert;
private var mouseTarget:DisplayObject;
function init()
{
ExternalInterface.addCallback(”openRightClick”, openRightClick);
}
function getMouseTarget(event:MouseEvent):void
{
mouseTarget = DisplayObject(event.target);
}
function openRightClick():void
{
var e:MouseEvent = new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, mouseTarget.mouseX, [...]

Posted in FLEX3 | 2 Comments »

php 下拉框,单选,复选框类

08月 27th, 2008 by Skylin

在我们编写一个项目的时候,可能经常会碰到动态内容的下拉框,单选框,复选框,而且编写这些动态的控件的过程中总会觉得破环了代码的HTML与PHP的分离的特征。
这里我把下拉框,单选复选框并入了PHP中,使用PHP针对这三种比较难搞的控件分别做了一套类,这些类比较简单,下面我只写出演示,源代码请在下面下载。
下拉框演示:
<?php
$scalearr = array(’1 - 49人’,’50 - 99人’,’100 - 499人’,’500 - 999人’,’1000人以上’);
$scale = new SelectBox(”scale”);     //实例化对象
$scale->AddItem(”请选择…”,”-1″,1);     //给下拉框添加项
foreach($scalearr as $label=>$value)
{
$scale->AddItem($value,$label);
}
$scale->CheckItem_value(1);      //选中第二项,就是50 - 99人
$html = $scale->GetSelectHtml();    //获得下拉框的HTML代码
?>
new SelectBox(name,app)有两个参数,第一个参数是这个下拉框控件的name和id是什么,第二个参数是在这个下拉框中<select>添加附加属性,这样我们可以为下拉框编写JS或样式
AddItem($name,$value,$Checked=0,$append=”)有四个参数,前面两个我就不多说了,第三个是是否设置当前项为默认选中,第四个参数是可以对<option>添加附加属性
单选演示:
<?php
$showmap = new RadioBox(’showmap’);
$showmap->AddItem(’0′,’ 不开启&nbsp;&nbsp;’,”,$js=’onclick=”HideMap()”‘,1); //添加项
$showmap->AddItem(’1′,’ 开启’,”,$js=’onclick=”ShowMap()”‘);
$html = $showmap->GetSelectHtml();    //获得下拉框的HTML代码
?>
new RadioBox(’showmap’)只有一个参数,表示单选框的name和id
AddItem($value,$label,$space=’ ‘,$js=”,$Checked=0)前面两个参数不多说,第三个参数,表示当前项右边会附加什么东西?比如我们使用&nbsp;(空格)这样可以设置每个项的间隔距离,$js参数我想一眼就可以看出来是干什么用的,它不只可以使用在js上,而且还可以对单选框设置附加属性,$checked是是否设置当前项为默认选中
复选框演示:
<?php
$checkbox = new CheckBox(’checkbox’);
$checkbox->AddItem(’0′,’ 不开启&nbsp;&nbsp;’,”,$js=’onclick=”HideMap()”‘,1); //添加项
$checkbox->AddItem(’1′,’ 开启’,”,$js=’onclick=”ShowMap()”‘);
$html = $checkbox->GetSelectHtml();    //获得下拉框的HTML代码
?>
new CheckBox(’checkbox’)只有一个参数,表示单选框的name和id
AddItem($value,$label,$space=’ ‘,$js=”,$Checked=0)这里与单选框参数一样,可以参考单选框
其中还有很多可用的方法,大家可以查看源代码
源代码下载:box

Posted in PHP | No Comments »

ajax类

08月 27th, 2008 by Skylin

下面的ajax类是我经常用到的,可能有人会说现在有那么多框架,为什么不使用现有的框架做呢?因为框架的局限性比较大,一般不是为了与其他人统一代码或是想加快速度,一般我是不怎么喜欢使用框架的,就算是用框架的时候编写一些组件我也不喜欢用框架。
下面这套ajax类是我现在正在编写的一个项目上使用的,希望对大家有帮助。
function getRequester()
{
try
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try
{
return new ActiveXObject(”Microsoft.XMLHTTP”);
} catch (e)
{
try {
return new ActiveXObject(”Msxml2.XMLHTTP”);
} catch (e) {return false;}
}
}
}
catch (e)
{
alert(”You need a browser which supports an XMLHttpRequest Object.\nMozilla build 0.9.5 has this Object and IE5 and above.”);
return false;
}
}
function Ajax(cb,loads)
{
var me = this;
if(cb)
{
this.callback = cb;
}
else
this.callback = function(req)
{
return eval(req.responseText);
}
if(loads)
this.Loads = loads;
else
this.Loads = function(readyState)
{
return readyState;
}
this.state = function()
{
return me.requester.readyState;
}
this.readystatechange = function()
{
//alert(me.requester.readyState);
switch(me.requester.readyState)
{
case 1:
me.Loads(me.requester.readyState,me.value);
break;
case [...]

Posted in JAVASCRIPT | No Comments »

crontab命令详解

08月 27th, 2008 by Skylin

crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。
crontab命令有三种形式的命令行结构:
crontab [-u user] [file]
crontab [-u user] [-e|-l|-r]
crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行 crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命 令,并将他们也存放在crontab目录下。
命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab;
命令行中-l选项的作用是显示用户crontab文件的内容。
使用命令crontab -u user -e命令编辑用户user的cron(c)作业。用户通过编辑文件来增加或修改任何作业请求。
执行命令crontab -u user -r即可删除当前用户的所有的cron作业。
作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。username使用户名,在相应的文 件中存放着该用户所要运行的命令。命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。文件里的每一个请求必须包含以spaces和 tabs分割的六个域。前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。
第一道第五个字段的整数取值范围及意义是:
0~59 表示分
1~23 表示小时
1~31 表示日
1~12 表示月份
0~6 表示星期(其中0表示星期日)
/usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文 件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一 个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。

Posted in linux | No Comments »

wine安装IE

08月 27th, 2008 by Skylin

我们在linux上工作的时候有可能会使用到IE,特别是喜欢使用linux的WEB设计师,他们需要在各个浏览器上看效果,便于兼容,这时候WINE有可能会给予帮助,默认安装的 wine 是不大好用的,所以需要优化一下。
首先安装 0.9.36 或更新版本的 wine(在命令行下面输入 wine –version 查看版本号),这样可以避免和 scim 输入法冲突、以及 GBK 字体导致的运行缓慢问题。如果没有更新版本,那么可以自己编译一个,运行速度比默认编译的还快一点。
接下来用 ies4linux(ies4linux 官方网站) 自动安装 IE6。
之所以要使用 ies4linux 来配置 wine 环境,是因为 ies4linux 会附带安装一些基本组件和字体。这样在使用其他 Windows 程序时可以少不少麻烦。
不过 ies4linux 把 wine 配置文件放到 ~/.ies4linux 了,所以需要按照下列操作修改一下:
cd ~
rm -fr .wine
mv .ies4linux .wine
cd .wine
mv ie6/* .
rmdir ie6
这样修改后,ies4linux 在桌面上创建的 ie6 快捷方式就不能启动 ie 了,还需要修改一下 ~/bin/ie6 这个启动脚本:
cd ~/bin
rm ie6
ln -s ~/.wine/bin/ie6 ie6
gedit ie6
用搜索替换功能,将 [...]

Posted in linux | No Comments »

« Previous Entries Next Entries »