批量抓取百度音乐掌门的歌词文件
2010-05-15

       前段时间心血来潮,想搞个歌词库,于是网上查了一下,发现百度的歌词文件是连续的数字作为文件名(方便啊)。于是就写了个程序批量搞百度的歌词。 

        程序使用socket方式模拟浏览器去取百度的歌词,速度优化到很快了。 我目前已经下载了百度的91083份歌词啦

        百度的歌词文件虽然是数字,但是不是完全连续,中间有些数字是没有歌词的。所以程序显示no的时候,不要觉得奇怪哈。

        用法:在命令行下跑。 输入:php baidu.php。 当然,一次肯定是不可能把百度的所有歌词下载下来,所以要分多次。每次下载的起始数字和结尾数字请打开baidu.php编辑。

        提醒:下的太快了百度会封你IP。不过过一会就又好了。

查看全文...  

5452 read 9 comment(s)
我怎么觉得JScript比C#爽得多?
2010-05-14

      前几天做某个hack工程的时候,需要用到.net来编程。要实现一个类似代理的小程序,通过URL传入目标地址,然后通过.net去连接目标服务器下载文件后返回给我的浏览器。

      开始什么都不知道,于是请教了一个.net高手,写了一个hello world。于是我开始用C#补充代码,用到了.net的socket编程。再次受到C#那超级恶心的变量类型的摧残。每个变量都必须声明变量类型,烦死了。。比如:

IPEndPoint ipe = new IPEndPoint(address, port);

 天哪,谁知道IPEndPoint是什么样的数据类型。


      后来想到.net还可以用JS来写,于是就把刚刚写的代码重写了一下。发现JScript相比C#起来有点多多啊。 首先,变量不用声明类型(当然如果引起混淆时候还是要声明的,只是声明方式不同,比如var address: IPAddress;)。其次,在JScript里面可以使用大部分Javascript的方法。比如各种字符串处理方法 等。


      据说.net是编译成中间语言再执行的,那么用什么语言来写就没什么区别了。但是怎么觉得JScript在.net里面非常受歧视?msdn里面的示例代码什么都有,就是没JScript的。。。。

      本人.net功力尚属入门级,可能我用到的东西太少了。没有体现出C#的强大。(我觉得我愿意永远不知道C#有多么强大...)

完。

5040 read 6 comment(s)
新版博客来啦~~
2010-05-14

最近比较忙,一边是在开发EndCMS,一边在用EndCMS做几个小网站。这个博客就是其中之一。

基于EndCMS,不仅可以不用花费大量时间在繁琐的后台设计上,而且使用EndCMS的模板引擎,更能轻松制作前台页面。

但是EndCMS暂时还没到发布的时候,我还在完善插件等核心机制。


感谢EndTo的大力支持。

完。

4596 read 27 comment(s)
[原创]PHP实现类似ASP里的Application对象
2010-01-21

    以前搞过一段时间的asp,觉得application这个对象很爽。。可以很容易的写一个聊天室。。。后来逐渐转到php,就一直为这事郁闷。。因为php里面没有对应的东西。数据只能往数据库或者文件里面写才能实现共享。 今天在公司做聊天室的时候,灵机一动,居然让我发现了一神奇的方法~~哈哈:

PHP里面的$_SESSION变量可以实现类似Application的功能,但重点在它不能跨浏览器进程,或者说是跨用户。。只能是单个用户操作不同页面时候的变量传递,是一种cookie的替代方案。
众所周知,php里,调用session_start()之后,客户浏览器会收到一个大概名叫PHPSESSID的cookie,这个叫session_id。不同页面的参数共享就是靠这个变量实现的。
有时,由于客户端浏览器或者其他什么神奇的原因,导致无法正常发送 PHPSESSID的时候,我们可以手动发送,然后在php里面的session_start();之前,调用session_id("sessionid在这里");手工指定session_id ,这样,就可以让session工作正常。(比如浏览器不支持cookie,或用flash上传文件的时候)
好了,关键的东西来了。如果我们让每个用户的session_id都一样会怎么样? 哈哈。ASP的Application功能便呼之欲出~~~
实现方法非常简单: 在每个php页面的前面都写上下面的代码: session_id("xxxx"); session_start(); 然后,你就可以像用Application对象那样来使用$_SESSION了。。~~哈哈哈哈~~~爽吧~~

    PS:ASP的Application对象是存储在内存里面的,而PHP的SESSION一般默认是用文件来存的。不过也可以设置php.ini让php用mysql数据库存,甚至用memcached来存~~具体方法就不详述了。。 chy提到session本来的作用是保存用户的登录信息等,是非常有用的。我这样一弄,session就失去了它原有的功能。所以我搞了一个函数,可以实现全局session和局部session共存。互不干扰。

/*
用法:
application('key','value'); //设置 key=value
$value = application('key'); //获取 key的值
*/

function application()
{
	$args = func_get_args(); //获取输入参数
	if (count($args) >2 || count($args) < 1) return;
	$ssid = session_id(); //保存当前session_id
	session_write_close(); //结束当前session
	ob_start(); //禁止全局session发送header
	session_id("xxx"); //注册全局session_id
	session_start(); //开启全局session
	$key = $args[0];
	if (count($args) == 2) //如果有第二个参数,那么表示写入全局session
	{
		$re = ($_SESSION[$key] = $args[1]);
	}
	else // 如果只有一个参数,那么返回该参数对应的value
	{
		$re = $_SESSION[$key];
	}
	session_write_close(); //结束全局session
	session_id($ssid); //重新注册上面被中断的非全局session
	session_start(); //重新开启
	ob_end_clean(); //抛弃刚刚由于session_start产生的一些header输出
	return $re; 
}

    当然,这样操作的成本有点高。。不过在实际使用中,基本不会遇到使用全局session和局部session的频率都很高的情况。所以可以按需求封装局部session或者是全局session。 上面那个函数封装的是全局session,稍微修改就可以实现局部session。

完。

18083 read 30 comment(s)
寒假又要去北京。。房子好难找。。
2009-12-24
寒假去北京一公司工作,做经验分享的网站(umiwi.com)。。下学期估计也会待在北京了。。。但是发现房子好难找。朋友们有没有什么建议?或者可以和我合租什么的?  公司在大望路SOHO现代城,地铁1号线上。。只要1号线附近的房子应该都比较方便。房租大概1-2K就可以了。

完。

3997 read 41 comment(s)
上一页 1... 9 10 11 [12] 13 14 15 ...35 下一页
Copyright © Longbill 2008-2024 , Designed by EndTo , Powered by EndCMS