2013-08
17

互联网,10年,为了2个人

By xrspook @ 23:49:00 归类于: 烂日记

又是那个熟悉的味道,又是一个夏天,2003年的夏天是互联网把我带到了另外一个世界。那时开始我首次有种high到晚上睡不着觉的感觉。那种躺在床上也恋恋不舍的感觉,那种有无限多个为什么想去探索的欲望。过了好久好久,直到现在,那种探索的欲望对我来说都未曾减退过。

10年了,已经10年了。在这10年里我为2个人疯过。一个可以说是过去了,一个还在持续中。无独有偶,都是到了大概3年的时候出了些状况。具体是什么,就没必要说了,但那只是感觉上的失落,实际上他俩在正经事(工作)上从未让我有任何的不满。都是毋庸置疑的优秀,要不我也不会疯,但说真的,在开始疯的时候我可真没理睬过他们到底优秀得如何,只是凭直觉,我觉得我有兴趣,我觉得那里有我觉得正能量的东西,于是我就扑上去了。随着各种研究的深入,最后我觉得我在发散杂七杂八方面学到的东西比单纯的疯狂要多得多。

还记得从前用Flashget批量方式下载图片,用各种流媒体软件抓取各种流媒体.asf,.rm什么的,哈哈哈,当时.rmvb还没流行呢。当时当我疯狂地把某个网站几万张的照片下载回来后,我是多么的骄傲兴奋!或许也是从那次开始,命中注定我就成为了收集狂。我疯狂地下载各种图片、视频,至于文字类的,我用的是直接转载或翻译。毋庸置疑地,我是一个收集狂,当收集狂遇到小硬盘这很悲惨,所以为了这个两个疯子,我刻录的CD光盘不下300个。如果可以重来,我还会这么神经质么?但如果我不曾如此神经质,我将后悔、错过很多!

我不是生来就是代码狂,我不是一开始就沉迷于网站前端设计,如果我不曾疯狂,或许我只是会在BSP用默认模板。我不会从Blogger用到BlogBus用到WordPress并同时使用diandian。我更加不会自己写正则php用于快速提取我需要的资料。

如果10年前我没有接触互联网,如果10年里我没有为2个人疯狂过,xrspook不会是现在的xrspook,我甚至会像从前那样不知道我自己需要的到底是什么。

他们让我理性思考,他们让我开脑洞,他们让我在不知不觉中孤单地与时俱进。

我想看完这周的SD赶紧写摔角统计报告,因为我想赶紧写信,那种憋在心里,得控制住自己不组织语言发泄出来的感觉很难受。

我不后悔我疯了10年,因为在这10年里,我学会了或许一个female一辈子都学不完,一个male听闻之后要瞠目结舌的东西。我牺牲了,但我觉得我赚了更多。

2012-02
4

万花筒一大个

By xrspook @ 23:41:41 归类于: 烂日记

昨晚跟某网友聊天,我说我要买民谣吉他,然后他来了句“你爱好真广泛”,对哦!我的确就是这样的人!

就像我从不挑食一样我的各种发起神经的兴趣爱好根本就没有个底,见一个爱一个疯一个。

读书:不能停止学习!有必要我会去读各种电脑方面的书籍/教程。最爱的是小说,外国小说,拉美小说,现实主义小说。开始读一个作者的就会千方百计读完这个作者的所有——金庸,加西亚·马尔克斯,JM 库切,海明威,米兰·昆德拉,卡夫卡,乔治·奥威尔,略萨……爱读书,也喜欢写读后感。我电影看得比书多,但我写关于书的观后感多于电影的。读后感不是一种被逼迫的东西,是一种自发的、内在非常想做的一种东西。

外语:我英语远称不上好,只能说凑合着;西班牙语更完全不能说懂,水平连西语国家4岁小盆友都比不上,但我却斗胆做英语、西语的翻译,当然,范围非常小,只限定于我感兴趣的东西。还记得从前danzhu说过木棉不懂西语,但却把Yo soy Betty, la Fea 169集全部翻译出来了。我大概就是被这个激励到的吧!不为什么,只为兴趣,不理会别人到底喜欢不喜欢,不管别人嘲笑与否,就只为share,为了把自己心爱的东西传播给更多人。现在正在努力地Rosetta Stone西班牙语学习中。

电脑:我简直是半神人了~~~

MS Office是我的大爱,Excel更是我的最爱。学校老师教的都只是皮毛,最重要的是我总莫名其妙地想出鬼点子,然后自学摸索出很多我觉得是旁门左道的东西,不过,那些不过是Excel的正常功能而已,只是一般人少接触。跟他们相比我仿佛是大神,实际上不然。

不是计算机专业却喜欢写代码,CSS、XHTML、C、VB、PHP准备向Javascript进军,编程什么的很让我心动。

Photoshop,CorelDraw,截屏,GIF制作,ICON制作都是我的常规项目。

视频压缩剪辑是经常干的,但并不是要制作什么短片,纯粹是为了自己的收藏方便。

提取/录制音频是我的涉及范围,截一段出来,转码实在是必须掌握且非常简单。不会听但会抄写出五线谱的MIDI。

体育:乒乓球、羽毛球、毽子、篮球、网球、游泳、旱冰都是我爱,都沉迷过它们好段时间。除了长跑,没啥不喜欢,但如果说到看体育节目,除了高尔夫和台球我一律通杀。

音乐:电子琴、高音笛子、口琴(抽屉某处,至今不会),准备上民谣吉他。

美术:涂颜色经常会涂出边界,读书时候美术成绩不咋的,但却有鬼点子且乐于去实施。比如说在纸/胶板上刻什么图案,比如说喷/印DIY东西。

摄影:我算不上控摄影,但我却总是努力用一些不完全菜鸟的方式去照相。

劳作:大爱木制立体拼图。从前总喜欢把四驱车的马达、电灯、废旧文具、各种盒子拼凑出诸如电灯风扇、等各种电路玩具。喜欢给娃娃、人偶什么的做衣服,虽然很丑。更喜欢用木制立体拼图、模型的边脚料制作小人。这个实在太复杂了,我看到什么想去做的就会去动手改装,虽然大多样子非常那个啥,因为我关注的是功能!

我是个摔迷,是个招式控,是Alberto Del Rio的粉丝。喜欢看Discovery人文纪录片、BBC科学纪录片,也喜欢看美剧,我很容易沉迷上某个系列剧,我是个理性的人,但有些时候却只愿意用感性去看世界。

……

简单来说,xrspook是一个杂七杂八的万花筒,虽然质量不高,但胜在什么都有,因为她总有一颗乐于学习的心。

2010-11
26

再谈php正则提取图片地址

By xrspook @ 21:46:54 归类于: 烂日记

前天写了小谈php正则提取图片地址,但其实,提取src=里面的图片地址还不足够,因为不能保证那个地址一定是绝对地址,完全的地址,如果那是相对的呢?如果地址诸如:

albums/Candids/thumb_P1050338.jpg
/content/media/touts/5271608/5271654/15320982

那该如何是好?

有时在这些地址前面需要加http://example1.com/,有些甚至要加http://example1.com/example2/…/于是,要写出出一种法则符合所有要求,简直是天方夜谭。只能见机行事对症下药。有时,需要从前面动刀,有时需要从后面砍断。

今天,我惊讶地知道了一个道理,原来http://example.com/http://example.com//////是一样的!

http://img3.douban.com/pics/nav/lg_main_a6.png

http://img3.douban.com////pics////nav///lg_main_a6.png

最终你都能到达

于是,对于一开始提到的两个相对地址如果要强行加入某前缀恢复成绝对地址的话,也不管前面有没有“/”,只管加一个“/”就好,“有杀错,没放过”嘛,多一个显示仍会正常,但少一个“/”,嘿嘿,你就别想成功了。开始的时候我还没意识到这种东西,复制了一大段代码,把一样的东西硬生生弄两份,一份加“./.”,一份不加。我这个火星来的,浪费时间了。

放出2个地址,公测一下网页获取图片的情况:

针对任何网页,需要登入的除外:http://xyark.serw5.com/img.php
针对Coppermine Photo Gallery系统:http://xyark.serw5.com/g.php(如果你认为弹出原图的js页面也需要的话,我只好囧你了)

普页是个对抓取任何图片的尝试,系统专页是为了展示什么叫做具体情况具体分析。试过的童鞋会知道,普页对某些使用Coppermine Photo Gallery系统的网站是行不通的,原因何在?就是那个前缀搞的鬼!但系统专页就能很好地避开了这个问题。

如果大家在测试时发现任何bug,欢迎留言告知。请低调测试,谢谢合作。

注:以上话题纯粹出于就正则谈正则,光技术谈技术,不可作非正当用途。若非正当使用而引发任何杯具、餐具本人概不负责。

2010-11
24

小谈php正则提取图片地址

By xrspook @ 22:34:32 归类于: 烂日记

迷上了正则,不断尝试着新花招,首先感谢TNA的非完全输出RSS,然后再次感谢SH的强迫性学习。没有TNA,我不会去看正则,更不知道世界上有种这么牛的表达式;不是SH的死活说他不懂不知道,我也不会硬着头皮去琢磨,去改进。达到同一个目的,正则的表达方式可以不唯一,没有做不到,只有你没想到。可以这样说吧,正则就是玩设定规律,我大爱这种东西。没有比设定规律筛选东西更让我兴奋、感到awesome的了。

分享一下在php环境下使用正则提取图片地址的一些小心得:

图片网址规范的html代码无非就是

<img style="囧1" title="囧2" src="囧3" alt="囧4" width="囧5" height="囧6" />

囧1和囧2是非必需的,若要通过XHTML认证囧4、囧5、囧6必不可少,囧3是核心内容,当然就不能少了。

就正则谈正则的话,我写出的最短匹配是

(?<=img.+?src=”).*?(?=”)

不过,这条在php里不行,会出现:

Warning: preg_match_all() [function.preg-match-all]: Compilation failed: lookbehind assertion is not fixed length at offset *** in ***

纠结了很久,都不行,原因何在呢?试了很多次,终于发现问题在(?<=img.+?src=”)这个零宽断言里,在php中,零宽断言里不支持类似“*”、“+”这些无限次的东西,于是报错了,把“.+?”改为定长就好。不过,要“img”和“src=”之间定长基本上是不可能的。通常,图片地址的img和src只会相隔一个很简单的空格,但不排除某些情况在src之前,img后有alt、titlte等东西。

所以

(?<=img.src=”).*?(?=”)

(?<=img\ssrc=”).*?(?=”)

可能可以,但不保证100%没问题。

你也许会问,单纯

(?<=src=”).*?(?=”)

不行吗?通常情况,可以,但,搜索过页面的盆友应该知道,除了图片地址用src开头以外,javascript地址也用src开头!而且,太多神通广大的不可预知因素隐含其中,于是这个貌似很简短完美的写法就行不通了。

你又或许会问,聪明简短的不行,我把图片的后缀列出来,总该可以了吧,如

(?<=src=”).*?\.(jpg|jpeg|gif|png|bmp|JPG|JPEG|GIF|PNG|BMP)

的确,这个写法实在是很老实,不过,你见过没有后缀的图片?wwe.com有很多这种例子呢

RAW http://us.wwe.com/content/media/images/Headers/15559182
SmackDown http://us.wwe.com/content/media/images/Headers/15854138
NXT http://us.wwe.com/content/media/images/Headers/15929136
Superstars http://us.wwe.com/content/media/images/Headers/15815850

上面的网址都是图片,但都没有传统后缀,你老实也没用,还是不能获取到它们。

怎么办呢?还可以这样

<img(.*?)src=”(.*?)(?=”)

和上面的表达式不同,这次的结果中array[0]的内容不是我们想要的,我们要的图片地址在array[2]里。为什么呢?因为我们用了2个(.*?),每个“()”的东西会自动存在一个组里,而array[0]代表结果的汇总,array[1]包含了img和src里的所有东西,array[2]才轮到我们想要的图片地址。这种匹配方法,既能匹配有传统后缀的图片,也能匹配一些无后缀的图片文件,同时又不会杀错其它src=文件。个人感觉还是不错的,呵呵。当然了,如果你还有更好的建议,请马上留言,全球人民都会感谢你!

你到底要什么样的图片,是固定格式还是其它?得具体情况具体分析呢。

我的建议是:

如果你要的图片地址的格式是img空格src=的,请使用:(?<=img.src=”).*?(?=”),数组唯一,你懂的。

否则,请使用<img(.*?)src=”(.*?)(?=”),记得留意有用内容所在的数组位置哦!

2010-11
13

YOU ALREADY KNOW THAT

By xrspook @ 22:51:02 归类于: 烂日记

终于在SH的提醒和帮助下,在已经注册的几个国外免费空间里正常运行起YOU ALREADY KNOW THAT,我见简称YARK,按照首字母缩写应该是YAKT的,但误打误撞,变成YARK了,呵呵,YARK太短,所以注册的二级域名前加了我的戳“X”。正如YARK里的《h1》内容所标示:如果你是我的同伙,你会知道那空荡荡的网页是什么,怎么用;如果你想在这篇日志里直接找到答案,很对不起,在不跳转继续阅读某些链接的前提下,不可能。又或许,你真的很想知道,email我吧。至于我的联系方式,细心的你肯定already know that。

闪亮亮地放出一个YARK的地址:http://xyark.serw5.com/

很高兴地告诉大家,今天的YARK又实现了一个新的功能——直接把页面的title也输出了(并非各自的小title)!哇咔咔,如此一来,可以利用从RSS读到的地址完成某事,再也不用手动敲打某些代码了!

想变得懒惰欲望让我变得勤快。先花费一些时间制定规则,之后就可以拯救一些人的很多时间了。这就是程序的力量!!!!什么规范化管理,什么质量管理,如果你是个程序员,那些道理you already know that了。

说回YARK昨天没成功下海,原因是我完全是个PHP小白,所以碰得一头灰。通常,服务器基于安全考虑PHP的allow_url_fopen选项默认是OFF状态,免费空间通常都只会是OFF。而在PHP中需要使用file()[又或者file_get_contents()]函数获取其它站点的数据时,中招了,OFF状态就会出现一个“Warning: file() [function.file]: URL file-access is disabled in the server configuration in ***”的错误。幸好,我们还有第二招,cURL。在PHP程序里加入一段curl就能解决问题,但,这也是有前提是,curl是PHP的一个扩展库,所以,你的PHP系统的这个扩展功能必须处于enable状态,有些免费空间里curl是处于禁止状态的,那囧啊,不过确实存在,远在天边近在眼前的例子就是默认状态下的XAMPP。

也不管行不行了,把curl代码加进去试试再说,代码引用如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
< ?php
/*
* @return string
* @param string $url
* @desc Return string content from a remote file
* @author Luiz Miguel Axcar (lmaxcar@yahoo.com.br)
*/
 
function get_content($url)
{
	$ch = curl_init();
	curl_setopt ($ch, CURLOPT_URL, $url);
	curl_setopt ($ch, CURLOPT_HEADER, 0);
	ob_start();
	curl_exec ($ch);
	curl_close ($ch);
	$string = ob_get_contents();
	ob_end_clean();
	return $string;
}
 
#usage:
$content = get_content ("http://www.php.net");
var_dump ($content);
?>

实际应用时把http://example.com代替http://www.php.net作为数据输入,然后网址会经过function get_content($url)处理,进去的是一个网址,出来的是一个对网址所代表的网页信息进行处理后的字符串,也就是说,$content是一个包含所有网页信息的字符串,你喜欢怎么折腾就怎么折腾好了。至于那句“var_dump ($content);”是把$content的内容输出打印出来,你或许不会用到。不知为什么可以这么神奇,但就是这么神奇。PHP默认设置下不能实现的功能通过cURL就能实现,但实际上,最终效果是一样的。

再次感谢SH童鞋,也感谢那位写cURL挽救世人的巴西童鞋,是广大程序员让我感觉我是站在巨人肩膀上的。

也愿YARK能在它的用途上发光发亮。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress