梦里春秋

关注互联网应用与开发

javascript获取浏览器地址栏参数

2008-11-19 13:45:13 by 乱78招

下面的这段js代码获取HTML网页形如”test.html?foo=mytest&program=flash” ”?”后所有参数。

<script language=javascript>
<!--
var hrefstr,pos,parastr;
hrefstr = window.location.href;
pos = hrefstr.indexOf("?");
parastr = hrefstr.substring(pos+1);
if (pos>0){
    document.write("所有参数:"+parastr);
} else {
    document.write("无参数");
}
//-->
</script>

00000

网页中如何实现首行缩进和首行悬挂

2008-11-13 15:19:12 by 乱78招

在CSS样式中有一个text-indent来做首行缩进,比如实现每个段的文字都缩进两个字那么代码就是

<style>p.sss{text-indent:2em;}</style>
<p class="sss">这里的字会首行缩进两个字</p>

但是css中没有直接的首行缩进项,我们就变相的用text-indent结合padding来实现代码如下:

<style>.box p{text-indent:-2em;padding-left:2em;}</tyle>
<div class="box"><p>这里的字首行悬挂</p></div>

山寨电影的背后

2008-10-27 20:00:16 by 乱78招

笑闹天宫游戏截图

笑闹天宫游戏截图

看网上报道山寨电影《笑闹天宫之妖怪都市雷人》听说搞笑,专门下了来看,看到一半发现了一个朋友在里面我汗!结果半天原来是游戏笑闹天宫的广告片。

如果平时留心新闻不难发现,笑闹天宫游戏的推广煞费苦心。开始是海报到各大网吧,然后大渝网专题推广,目前又跟着山寨的热门,抓着网上视频的盛行的时候拍电影推广不失为推广良策。

ubuntu中启动项目init

2008-08-14 13:16:32 by 乱78招

昨天在看如何配置svn服务开机自动运行,在ubuntu的论坛上找到了这个资料。

启动脚本都在/etc/init.d文件夹里,同时在/etc文件夹里面还有一系列的类似 rc1.d,rc2.d等等,这对应不同运行级别时系统开机的启动进程,我们一般是进入X 界面,对应的运行级别是5,所以X界面下的开机启动进程都在rc5.d里面描述,实际上rc*.d里面的都是位于/etc/init.d脚本的软连接, /etc/init.d里面包含所以的服务,而rc*.d里面的服务是前者的子集,也就是随机启动的一些服务。而且rc*.d里面的文件都以S或者K开头,S开头说明是随机启动的服务,K开头的是不随机启动的服务。说到这里我想你已经明白怎样解决问题了:将rc5.d文件夹里面的,你不想随机启动的服务所对应的文件名改一下就行了,将第一个字母S改为K,那么下次开机他就不会随机启动了。或者干脆rm那个文件就OK啦。

关于盘古合租服务器的一点看法

2008-08-08 16:46:06 by 乱78招

租用盘古的服务器电信5G型一年了,总体感觉来说还是比较适合我。

优点:

1.本地电信访问还是挺快的,

2.服务人员态度还不错,

3.提供了SSH支持

缺点:

1.服务人员技术支持不到位(由于安装Drupal做测试用,需要升级MySQL到4.1以上,结果其服务人员说给我换空间,哪里知道转移的竟然是试用空间,三天两头cPanel进不去,郁闷惨了,提交了N次问题他们又不给我解决,还好,我自己又把它转移到原来的空间上了继续续费一年。)

2.支持绑定域名太少(比如给公司做企业站,一个站200M就够了,至少得支持20个域名吧,结果他只支持5个独立域名,其他域名只能是二级或者域名停靠。)

诀窍:

呵呵经过本人测试,可以突破它只绑定5个顶级域名做站的问题,把域名停靠用.htaccess做重定向就可以绑定25个域名了,这样可以做25个顶级域名的站。

Flash动态文本框内动态文本内容自适应

2008-08-06 21:48:05 by 乱78招

这样一道题关于Flash的:Flash场景中有一个文本框,它的长和宽是已知的但是值不固定(可能是10×20也可能是462×139还有可能其他),然后我们有一个字符串长度已知但是同样不固定(可能1个字也可能562个字还可能其他)。目前我们要实现,调整字的大小使这些字要填满这个文本框,不能有滚动(字要完全显示出来)也不能空很大的空出来最好刚刚填满。

这个问题困扰了我3、4天了还是没有办法解决其中的一些问题,写下我的实现办法。

先我设想文本框和场景一样大,拖动Flash影片的时候文本框长宽自然改变,但是值也是可以通过Stage获取的。然后文本内的文字设置一个变量。现在问题就变成无论怎么拖动这个Flash,里面的自都是满满的填满了真个文本框,没有隐藏也没有太多空白。如下图

我的代码

stop();
Stage.scaleMode = “noScale”;
Stage.align = “TL”;
Stage.showMenu = false;
var i_txt:String = “其实电脑方面懂的太少其实电脑方面懂的太少其实电脑方面懂的太少”;
var t_w:Number = Stage.width-10;//减去边框霓虹灯的宽度
var t_h:Number = Stage.height-10;//减去边框霓虹灯的高度

var xn:Number = Math.ceil(Math.sqrt(i_txt.length * ((Stage.width-14) * 76) / (67 * (Stage.height-14))));//是对每行字体个数的估算,下面是对字行数的估算,问题就在这里。
var yn:Number = Math.ceil(i_txt.length/xn);
setProperty(”_root.nhd_b”, _y, Stage.height-3);//霓虹灯宽3像素,这里设置霓虹灯底部的边框
setProperty(”_root.nhd_r”, _x, Stage.width-3);//霓虹灯右边的边框
this.createTextField(”my_txt”, this.getNextHighestDepth(), 5, 5, t_w, t_h);//画出文本框
my_txt.type = “static”;
my_txt.multiline = true;
my_txt.border = true;
my_txt.wordWrap = true;
my_txt.selectable = true;
my_txt.hscroll = 0;
my_txt.text = i_txt;
var my_fmt:TextFormat = new TextFormat();
my_fmt.size = Math.floor((t_w-4)/(xn));//估算字的大小
my_fmt.color = 0xFF0000;
my_fmt.align = “left”;
my_fmt.leftMargin = 0;
my_fmt.rightMargin = 0;
my_fmt.indent = 0;
my_fmt.leading = 0;
my_fmt.letterSpacing = 0;
my_fmt.kerning = true;
my_txt.setTextFormat(my_fmt);
var sizeLis = new Object();
sizeLis.onResize = function() {
setProperty(”_root.nhd_b”, _y, Stage.height-3);
setProperty(”_root.nhd_r”, _x, Stage.width-3);
var xn:Number = Math.ceil(Math.sqrt(i_txt.length * ((Stage.width-14) * 76) / (67 * (Stage.height-14))));
var yn:Number = Math.ceil(i_txt.length/xn);
my_txt._width = Stage.width-10;
my_txt._height = Stage.height-10;
my_fmt.size = Math.floor((Stage.width-10-4)/(xn));
};
Stage.addListener(sizeLis);

完整代码打包下载

用Xdebug调试PHP程序

2008-07-25 21:45:20 by 乱78招

什么是Xdebug?

Xdebug是一个PHP的扩展用于调试PHP程序,用于调试PHP,可以提供很多有用的调试信息,比如:。

1.Xdebug的安装

首先假设我们的开发平台是windows XP上面已经安装好了Apache、PHP(点击查看:如何在windows下安装Apache、PHP),PHP安装在C:\php目录。

先到Xdebug的官方网站http://xdebug.org/去下载对应你PHP版本的Xdebug的DLL文件,下载下来放在PHP的ext目录(c:\php\ext\),你可以按照其他扩展的命名方式,去掉后面Xdebug的版本编号直接改成php_xdebug.dll。

然后修改php.ini,先找到你机器上配置的php.ini的位置(c:\php\php.ini或者c:\windows\php.ini),在文件的最后加上Xdebug配置信息

[Xdebug]
zend_extension_ts=”c:/php/ext/php_xdebug.dll”
xdebug.auto_trace=on
xdebug.collect_params=on
xdebug.collect_return=on
xdebug.trace_output_dir=”c:\Temp\xdebug”
xdebug.profiler_enable=on
xdebug.profiler_output_dir=”c:\Temp\xdebug”

参数解释:
zend_extension_ts=”c:/php/ext/php_xdebug.dll”
;加载xdebug,不能用extension=php_xdebug.dll的方式加载,必须要以zend的方式加载,否则安装上 后,phpinfo打印出来的里的xdebug段的会有Must LOADED AS ZEND EXTENSION的警告信息(原因未知)。

xdebug.auto_trace=on;
;自动打开“监测函数调用过程”,该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出。此配置项的默认值为off。

xdebug.collect_params=on;
;打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。

xdebug.collect_return=on
;打开收集“函数返回值”的功能。将函数的返回值列入函数过程调用的监测信息中。此配置项的默认值为off。

xdebug.trace_output_dir=”c:\Temp\xdebug”
;设定函数调用监测信息的输出文件的路径,注意这个目录需要手动建立

xdebug.profiler_enable=on
;打开效能监测器。

xdebug.profiler_output_dir=”c:\Temp\xdebug”;
;设定效能监测信息输出文件的路径。

还有一些更为具体的参数设定,详见:http://www.xdebug.org/docs-settings.php

配置好以后,重新启动Apache,用phpinfo()就可以查看Xdebug扩展的相关信息了如下。

Xdebug的安装已经好了,那么现在如何进行调试呢?

现在写一个php文件,通过浏览器访问,去看看配置的信息输出文件目录c:\Temp\xdebug 是不是多了几个文件,这就是调试的输出信息。用记事本打开可以看到很详尽的记录,可是我们查看起来非常不方便。Xdebug官方提供了一个 Debug client,熟悉英文的朋友可以直接去看看说明,我英文不好所以也没有介绍。这里另外推荐一款非常方便的查看调试信息软件wincachegrind。

2.wincachegrind查看Xdebug调试信息

先到http://sourceforge.net/projects/wincachegrind/下载安装wincachegrind,由于伟大的GFW,可能暂时无法下载这里一共一个本地的绿色版本(上网搜的来自一个网友的修改,网友网址忘记了。)

打开后点击Tools->options,设定你的working folder(php.ini里xdebug.profiler_output_dir的值C:\Temp\xdebug)这样就可以比较直观的查看效能监测文件的信息了。

参考资料:
http://www.leeyupeng.com/archives/325
http://www.lostk.com/blog/install_xdebug/

推荐一款SQL格式化工具

2008-07-19 23:40:02 by 乱78招

What is SQLinForm?

SQLinForm is an automatic SQL code formatter for all major databases ( ORACLE, SQL Server, DB2 / UDB, Sybase, Informix, PostgreSQL, MySQL etc) with many formatting options .

SQLinForm是一款自动格式化SQL代码的工具,它可以格式化几乎所有的主流数据库( ORACLE, SQL Server, DB2 / UDB, Sybase, Informix, PostgreSQL, MySQL )。

它分为在线版和桌面版。桌面版就是一个jar文件,如果装有java虚拟机就可以直接运行,非常方便。

本地桌面版本下载

前后效果图比较如下

SQL中case的应用

2008-07-19 11:44:58 by 乱78招

情况一个记录学生成绩的数据表其结构和数据简单演示如下

school_report_card(表名)
student_name  subject    grade
小王                  数学         90
小王                  物理         80
小王                  化学         70
张强                  物理         40
张强                  数学         60
张强                  化学         50
青青                  数学         20
青青                  化学         30
青青                  物理         10

我们目前的要求是通过一个sql语句返回如下的查询结果

student_name,math,physics,chemistry
小王     90     80     70
张强     60     40     50
青青     20     10     30

通过询问朋友朋友们说了个初步的实现sum case,然后在朋友的提示下搜索到了相关资料,分析后得到如下的SQL查询语句,实现了上面所说的功能。

SELECT  student_name,
SUM(
CASE subject
WHEN ‘数学’
THEN grade
ELSE NULL
END) AS math,
SUM(
CASE subject
WHEN ‘物理’
THEN grade
ELSE NULL
END) AS physics,
SUM(
CASE subject
WHEN ‘化学’
THEN grade
ELSE NULL
END) AS chemistry
FROM  school_report_card
GROUP BY student_name

新问题:如果我们学生的科目数量不是固定的那么这个SQL语句又该如何写呢?

参考资料 探讨SQL Server中Case的不同用法

wordpress垃圾评论一大堆

2008-07-18 20:32:00 by 乱78招

前段时间看了篇网上的博客推广的文章,把好几个通知地址加入了wordpress,结果实际用户到没有引来,反而引来了大量的垃圾Spam每天都几十条。上网搜了下知道Akismet插件可以有效的防止垃圾Spam,可以打开的时候却发现原来需要wp.com的API Key上网注册了个用户,可惜无法访问API页面原来被伟大的GFW给和谐了。这样就算有API也无法有效的达到防止Spam的效果,后来看见其他博客上有介绍Spam Karma 2看起来不错,但是听说要有数据库的改动,以后升级搞得麻麻烦烦的,不用算了,还是手工审核每个留言好。

©2005-2008 梦里春秋登录