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能在它的用途上发光发亮。

2010-11
12

无处安家

By xrspook @ 23:53:14 归类于: 烂日记

花了一个早上注册了接近10个国外支持PHP的免费空间,无一例外,都不支持我的小转换程序,泪流满面啊~~~~ 基本上都是不允许file access,巨囧。不就是借php处理一下文件而已嘛,导入XML输出XHTML,仅此而已。不是大奸大恶,却落得如此下场。有些空间是不支持的,有些空间是不知道该怎么用的,么法语、俄语、匈牙利语,按G翻译都按到手软,到头来还是不知从哪里下手。不得不说,郁闷到极点的时候,我怀念我的英语和西语啊~~~ 西语从来都没有让我如此彷徨过。

完全不知道该怎么办了,难道要把程序一直挂在我自己的地方?其实呢,也无伤大雅,因为从页面和页面源代码你啥都看不出来。因为核心php部分都经浏览器处理了。机密,也不能算机密啦,不可能漏出来。光看这个网页,没人能看出这是干嘛的,除非你是高手,你故意探我的php,但如果你是高手,自己就写php了,根本不用来探我。

真没想到,想找个支持的免费空间也这么难。

Warning: file() [function.file]: URL file-access is disabled in the server configuration in /***/index.php on line 20

这句话让我揪心不已。

初出茅庐的小php只好到窝在家里坐井观天了。

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