> 经过颇多挫折,小邪终于完成了灰常可爱的文本数据库短网址程序,现在运行良好,嘿嘿。
> 因为使用的是 301 转向,所以完全不必担心 SEO 的问题,跟原本网址的性质一致。

> 程序提供了浏览器书签,拖到收藏夹或书签栏,直接点击,即可缩短当前浏览页面的网址。
> 同时也提供了 API,因为服务器限制只能把“//”替换为“[1]”然后再进行传输。杯具啊 ╮(╯▽╰)╭。
> P.s. 传送门:http://u.evlos.org,大家随便玩喔 。
01. 使用说明:
> 在框中粘贴或者输入长网址,然后点击缩短,就生成了短网址咯。


02. 书签使用说明:
> 将书签拖入收藏夹或者托到书签栏上,当然右键点击选择添加到收藏夹也可。
> 然后在浏览网页的时候,点击此书签,即会立即将此网页的地址缩短为短网址。


03. API 使用说明:
> 因为服务器限制,所以只能把网址中的“//”替换为“[1]”,“&”替换为“[2]”,“#”替换为“[3]”。
> 然后再进行传输,才能正常执行,话说 urlShort 程序可处理不了这种情况喔。
> 以下是替换代码,$evlos_source 里面的值是需要被缩短的网址。
1 2 3 4 5 6 7 8 | <?php $evlos_source = 'http://docs.jquery.com/Release:jQuery_1.3.1'; $evlos_url = str_replace('//','[1]',$evlos_source); $evlos_url = str_replace('&','[2]',$evlos_source); $evlos_url = str_replace('#','[3]',$evlos_source); $evlos_request = 'http://u.evlos.org/index.php?type=1&url='.$evlos_url; $evlos_content = file_get_contents($evlos_request); ?> |
> 然后找个合适的位置去把地址输出来,像这样。
1 | <?php echo $evlos_content; ?> |
04. 301 转向解释:
> 呵呵,因为程序使用的是 301 转向,所以搜索引擎识别此缩短后的地址时。
> 得到的内容是原先的长网址。也就是说对于搜索引擎来说,这俩地址是一模一样的。
> 301 redirect: 301代表永久性转移(Permanently Moved)。
> 这种方法是网页更改地址后对搜索引擎友好的最好方法。
1 2 3 | function go_target_directly($url) { header('Location: '.$location.''.$url.'', TRUE, 301); } |
05. 充分发挥文本数据库的优势:
> 如果使用 Mysql 的话,就需要一个表,然后输入短网址后。
> 对表搜索,找出匹配的内容,输出长网址再重定向。
> 但是使用文本数据库就不一样了,因为我为每一个短网址都建立了一个文件。
> 这样完全不需要搜索了,输入短网址,直接读取对应的文件。
> 那个文件只有一行,就是长网址,读取之后直接重定向即可,速度超快。
06. Htaccess 文件的使用:
> (*^__^*) 嘻嘻,这个是重头戏,所有地址后面的短网址代码会被传递。
> $1 表示前面第一个括号内的内容,内容进行正则匹配,然后传递。
> 传递到 index.php?co=$1,URL Rewrite 真是强大哇 ( ⊙o⊙ )。
1 2 3 4 5 | <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule ^([a-z0-9\-]+)$ index.php?co=$1 [L] </IfModule> |
07. Url 参数传递:
> 呵呵,这个倒是很方便的功能,传来传去传得很爽 O(∩_∩)O。
> 别忘记用 Isset 函数验证参数是否存在,要是不存在就会出错的喔。
1 | do.php?code=7uckg7w |
> 上面地址传参数,然后下面代码接收参数,嘿嘿。
1 2 3 4 5 | <?php if (isset($_GET['code'])) { $code = $_GET['code']; } ?> |
08. 获取当前目录 URL 地址:
> 话说我都是这样获取的,如果哪位高手有更方便的方法,请指点一下。
1 2 3 4 5 6 7 | $do_url_host = $_SERVER['HTTP_HOST']; $do_url_dirfile = $_SERVER['PHP_SELF']; $do_url_localdir = __FILE__; $do_url_file = basename($do_url_localdir); $do_url_dirfile = str_replace($do_url_file,'',$do_url_dirfile); $do_url_local = 'http://'.$do_url_host.$do_url_dirfile; //Get Info |
09. File 函数:
> 直接读取即可,文件中的内容以每行建立数组,赋值到 $file_content。
> 即 $file_content[0] 为第一行,这样就可以很方便的读取咯。
1 | $file_content = file('1.txt'); |
10. Echo 输出整个页面:
> 嘿嘿,我很喜欢用 Echo 输出页面,需要修改的地方用 Str_replace 替换一下就好咯。
> 注意喔,下面这个标签当然不能拿来输出,并且不能把 PHP 代码拿来输出。
1 2 | <?php ?> |
11. POST 传递参数:
> 下面的代码就是使用 POST 传递的表单代码,Index.php 为目标执行文件。
> 这样就可以吧 Name="url" 的输入框内容传递到 Index.php 文件咯。
> 呵呵,因为 Index.php 就是表单所在的文件,所以 action="index.php" 是可以省略的。
1 2 3 4 5 | <form action="index.php" method="post"> <p><input class="textfield" type="text" name="url" /></p> <p><input class="textsubmit" type="reset" value="清空" /> <input class="textsubmit" type="submit" value="缩短" /></p> </form> |
12. 如何整合到WordPress:
> 将以下代码插入到 Single.php Page.php 以及任何想显示短网址的页面。
1 2 3 4 5 6 7 | <?php $evlos_url = str_replace('//','[1]',get_permalink()); $evlos_url = str_replace('&','[2]',$evlos_url); $evlos_url = str_replace('#','[3]',$evlos_url); $evlos_request = 'http://u.evlos.org/index.php?type=1&url='.$evlos_url; $evlos_content = file_get_contents($evlos_request); ?> |
> 然后把下面的代码插入到想显示的位置即可 O(∩_∩)O。
1 | <?php echo $evlos_content; ?> |
> 例如我的文章页面,文章内容底部的短网址就是这样显示的喔。
1 2 3 | <a target="_blank" href="<?php echo $evlos_content; ?>"> ShortUrl( <?php echo $evlos_content; ?> ) </a> |
> P.s. [Update] => 已升级为 Mysql 数据库存储方式,O(∩_∩)O。
13. 欢迎来 Follow 我的 Twitter @AngelSolo 。
广告一下,我的短链接还原工具,适合没有梯子不能打开某些短链接的人
短链接还原,AngelSolo不要收我广告费,哈哈
@bolo , 呵呵,要感谢你的还原程序对我的短网址的支持 ~
所以呢,当然免费喔 ~
@邪 罗刹,
你什么时候上线?模板你还有空做没?
@菠萝 , 唔,QQ上说好了 ~
短网址也有好多人在用呢,介绍的很详细
@先看看 , 呵呵,貌似蛮有前途的,欢迎拿去玩玩 ~
我喜欢,等空了拿回去我自己搞一个,哈哈。
@一米 , 那搞好了我要去围观下,呵呵 ~
https不是安全站点吗?
@GEZ鸽子 , 呵呵,是的,缩短也是没问题的 ~
果然短很多啊,呵呵
@开心凡人 , 嘿嘿,的确只是相对短很多,因为我现在没有短域名来着 ╮(╯▽╰)╭。
。。。cn后缀倒还蛮段。。只是现在谁还敢用。。
@QiQiBoY , ~~~~(>_< )~~~~ ,而且个性域名好贵呢 ~
这个很实用。。。明天好好看,晚上参加活动。嘿嘿。
@苏囧 , 呵呵,啥活动?爱情动作片?
刚进来就发现网页打开慢了好多。。。。。。原来换这个主题了,不过我另外的博客也在用。你这个短网址程序很好,可以推广推广。哈哈。
@蓝冰 , 天哪 居然慢了好多 - - ~ 杯具啊 ~
得想办法提提速 ~
@邪 罗刹,
哈哈。
@邪 罗刹,
这个评论的css好漂亮。
@蓝冰 , 呵呵 ~
只是用了递进式的CSS选择器 ~
.child .child
.child .child .child
笨笨的方法,呵呵 ~
原来用的那个烂主机,很多都不支持,又一次在别人的指导下,搞了一个,没成功~
顿时我就囧了,再也不搞了,老老实实写文
@exia , ╮(╯▽╰)╭,你也真倒霉,碰上个烂主机,大杯具啊 ~
没多大用吧
@阿士 , 个人喜好咯 ~ ╮(╯▽╰)╭
@ShuaiGe.Me , 那个程序我本地装上去有问题,很郁闷了。就只好自己写了个 ~
@邪 罗刹,
是有几个小问题,当时程序都汉化完了
@ShuaiGe.Me , 喔,原来如此,╮(╯▽╰)╭,有够杯具的 ~
不影响Seo么?
@漠岚 , 汗 ~ 我已经特地在文中解释了这个问题了 ~
> 您提供的 Url:http://wange.im
> 缩短后的 Url:http://u.evlos.org/2k
哈哈,调戏你的短网址~
@万戈 , ........ 蹲到墙角画圈圈去了 ~ 杯具啊 今天被调戏好几次了 ~
刚才一童鞋弄了这个刺激我 ~
> 您提供的 Url:http://g.cn
> 缩短后的 Url:http://u.evlos.org/29
@邪 罗刹,
HOHO~
当时就想试试效果
来了个最简短滴
@Auston Jary , 呵呵,不要在意啦 ~
随便试,没关系的 ~
不玩这个
@阿吴 , C语言大师,最近有成果没有?
@邪 罗刹,
我晕,别这样说
@阿吴,
(*^__^*) 嘻嘻……
世界最短的网址在这里:一个是 http://dk. 一个是 http://to. 注意后面有个点哦,试试小邪的伸长网址服务吧
@第三眼,
> 您提供的 Url:http://to.
> 缩短后的 Url:http://u.evlos.org/2x
@第三眼 , 今天蹲墙角画圈圈画了一天了 ~
@第三眼 , (- -+) 欢迎大家来使用小邪的伸长网址服务 !!
我看完了感觉很强悍的说,第一次看见这样的搞法
@真好网 , 呵呵,还好啦 ~
国外都出来有几个了 ~
( ⊙o⊙ )哇 高手啊,以后有问题就来请教你了 O(∩_∩)O哈哈~~·
@疾风 , 呵呵,谢谢你的认可 ~ 我会尽力帮忙的 ~
来你博客收益非浅,把你博客全部博文都看了一遍。
也采集了一堆的资料到邮箱了。谢谢啊。
我也不你终身采购了(rss)。
@少杰 , 呵呵,对你有用就是对我最大的支持 ~
你的博客也很不错呢 ,好多营销的知识喔 ~
高手啊,支持一下!
@风中的峰 , 呵呵,还好啦,我也正在学习中 ~
靠,模板是自己做的吧。。程序是不是自己的?
@Jerry Chen,
shit,看错了,自己做的程序。。不过话说我的http://close.cc用着也不错啊,源码是urlshort的、、现在正在写河蟹微博的URL了
@Jerry Chen , .........
@Jerry Chen , 靠,我也没有这么不要脸 ~
UrlShort 可处理不了带参数的 URL ~
@邪 罗刹,
我也打算写个,但是觉得自己写个不实用,况且有现成程序了,用着也没什么不爽,而且没有多少变态的URL有//,#这些吧?我倒是准备自己写个统计程序,js+php
@Jerry Chen , 唔,呵呵,用着爽就好 ~
到时候统计写好咯,咱去围观 ~
@邪 罗刹,
你现在围观我的微博程序吧,http://m.close.cc,读取和写入的API搞好了。。
第一次写API,所以xml,json这些乱七八糟没用,直接用curl。。
@Jerry Chen , 嘿嘿,XML那些乱七八糟的我也搞不清楚 ~
我用了 file_get_contents ~
@邪 罗刹,
你的是一个文件,我的直接读取数据库啊,老大。。
人多的时候,读写数据库比读写文件更高效,因为sql查询有缓存,但是读取文件没有。。
要是等到1000个文件的时候,你就等着崩溃吧。。
@Jerry Chen , ........... 嘎?
原来SQL有缓存,文件没的 ~ ( ⊙o⊙ ) ~
完了,我杯具了 ~ 啊 ~ 神啊 ~
@邪 罗刹,
趁着你还不打算开源,赶快重写吧。。不然等到1000个文件的时候,你真的会崩溃的,嘎嘎
@Jerry Chen , 喔,多谢提醒 ~
╮(╯▽╰)╭,现在还处于对 Mysql 一窍不通的状态 ~
我先学学,然后马上改改 ~
@邪 罗刹,
很简单:
mysql_query和mysql_fetch_assoc和mysql_num_rows,这三个是最基本的了。
如果要复杂的话还有left join和right join,还有联合查询(union)。。
写这个微博程序让我终于感受到底层程序的艰难。。
我们用QQ说吧。。
@Jerry Chen , 呵呵,O(∩_∩)O谢谢 ~
我现在手机不在身上,郁闷的是QQ用了手机令牌 ~
所以只能回家上饿,等我回家了,再找你哈 ~
汗,这东西我怎么用啊?
@网络砖家 , ╮(╯▽╰)╭,整合到 WordPress 或者 加一个书签,呵呵 ~ 随意咯 ~
又是这么强的技术文章,你懂的可真多啊
再过一周我就放假了,别忙了,假期给我当家教啊
@九站 , 呵呵,因为我要办签证,所以可能很忙,不过我会尽力的哈,希望理解下 ~
缩短是为了什么啊
@上海女seo朱云 , 在微博客上面发布信息都有字数限制的 ~
所以用这个可以方便地发长的 URL ~
我来耍一耍:
> 您提供的 Url:http://www.thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/wearejustdoingthistobestupidnowsincethiscangoonforeverandeverandeverbutitstilllookskindaneatinthebrowsereventhoughitsabigwasteoftimeandenergyandhasnorealpointbutwehadtodoitanyways.html
> 缩短后的 Url:http://u.evlos.org/51
@Jerry Chen , .......... Orz 博客模板都给你弄穿了 ~ 我去修修 ~
@邪 罗刹,
我刚才写了一个最简陋的Adobe Air程序。。我的博客有写。
@Jerry Chen , 呵呵,我看看去 ~
> 您提供的 Url:http://www.google.com/search?hl=en&lr=&c2coff=1&rls=GGLG%2CGGLG%3A2005-26%2CGGLG%3Aen&q=http%3A%2F%2Fwww.google.com%2Fsearch%3Fhl%3Den%26lr%3D%26c2coff%3D1%26rls%3DGGLG%252CGGLG%253A2005-26%252CGGLG%253Aen%26q%3Dhttp%253A%252F%252Fwww.google.com%252Fsearch%253Fhl%253Den%2526lr%253D%2526c2coff%253D1%2526rls%253DGGLG%25252CGGLG%25253A2005-26%25252CGGLG%25253Aen%2526q%253Dhttp%25253A%25252F%25252Fwww.google.com%25252Fsearch%25253Fsourceid%25253Dnavclient%252526ie%25253DUTF-8%252526rls%25253DGGLG%25252CGGLG%25253A2005-26%25252CGGLG%25253Aen%252526q%25253Dhttp%2525253A%2525252F%2525252Fwww%2525252Egoogle%2525252Ecom%2525252Fsearch%2525253Fsourceid%2525253Dnavclient%25252526ie%2525253DUTF%2525252D8%25252526rls%2525253DGGLG%2525252CGGLG%2525253A2005%2525252D26%2525252CGGLG%2525253Aen%25252526q%2525253Dhttp%252525253A%252525252F%252525252Fuk2%252525252Emultimap%252525252Ecom%252525252Fmap%252525252Fbrowse%252525252Ecgi%252525253Fclient%252525253Dpublic%2525252526GridE%252525253D%252525252D0%252525252E12640%2525252526GridN%252525253D51%252525252E50860%2525252526lon%252525253D%252525252D0%252525252E12640%2525252526lat%252525253D51%252525252E50860%2525252526search%252525255Fresult%252525253DLondon%25252525252CGreater%252525252520London%2525252526db%252525253Dfreegaz%2525252526cidr%252525255Fclient%252525253Dnone%2525252526lang%252525253D%2525252526place%252525253DLondon%252525252CGreater%252525252BLondon%2525252526pc%252525253D%2525252526advanced%252525253D%2525252526client%252525253Dpublic%2525252526addr2%252525253D%2525252526quicksearch%252525253DLondon%2525252526addr3%252525253D%2525252526scale%252525253D100000%2525252526addr1%252525253D%2526btnG%253DSearch%26btnG%3DSearch&btnG=Search
> 缩短后的 Url:http://u.evlos.org/52
@Jerry Chen , Orz ............ 好长 好长 ~
@北街 , 呵呵,欢迎飘过 ~
我怎么没看懂你博客呢?
@飞杨(人性解码器) , 饿,这是一个问题 ~
╮(╯▽╰)╭,挺住啊 勇士 ~
太过深奥的技术型文章我一般直接无视,我就要成果就行了。。。
@SATURN , 呵呵,够干脆 ~ O(∩_∩)O ~
你丫也开始玩病毒式推广啦?
@619 , 祝你今天蛋疼 ~
@邪 罗刹,
日,夸你呢你竟然埋汰我!
@619 , 多么美好的祝愿啊,你丫竟然认为我埋汰你 ~
太让人伤心了 ~
@邪 罗刹,
你丫还得瑟,每每都整些技术活诱惑我!
@619 , 嘿嘿嘿嘿 括弧 YD地笑 ~
还有这等好东西
@Rusaer , 呵呵,蛮方便的说 O(∩_∩)O ~
来去试试我的
@江流 , 呵呵,祝你玩得开心 ~
有个疑问,URL静态化后的长短,真的和字段长短有关系吗?就目前搜索引擎的能力来看,好像已经不是问题了吧?
@Sawyer , 汗 ~ 这个不是优化搜索引擎用的 只是不影响搜索引擎而已 ~
文本数据库是方便,用的人越多但会生成很多文件的吧
@Dianso , 呵呵,是的,我刚刚写好了个打包程序,需要转移的时候就打包起来 ~
不错不错
@Showfom , 呵呵,2009最后一天,兽兽童鞋送了小邪一个惊喜呢 ~ O(∩_∩)O ~
欢迎第一次留下脚印 ~
@邪 罗刹,
囧 你认识我?
@Showfom , 呵呵,怎么会不认识 ~
印象最深刻的是 ~
你没事在Twitter上老讲自己的女朋友,把小邪这杆光棍刺激的不行 ~
@邪 罗刹,
囧
@Showfom , O(∩_∩)O 哈哈 ~
小邪开源否?开放API否?
@Showfom , 呵呵,短时间不开源了,最近打算把整个程序重写 ~
效率不好,虽然转向效率不错 ~
但是 include 用的太多了,func.php 也变成了累赘,呜呜 ~
@Showfom , API 迟一些开放,呵呵 ~
偶弄了个超级帅的域名啊 zi.mu 字母 要不来给我开发个短网址吧 有报酬
@Showfom , 不好意思,那么长时间才回复你 ~
这俩天小邪时间挤的只能到处看大家的博客 ~
连自己的博客都没时间管了 ╮(╯▽╰)╭ ~
呵呵,报酬意思一下就可以 ~
你可以先说说所需要的功能吧 ~
基本的也就下面这些:
1)缩短网址,可以通过书签、API、网页等形式进行
2)使用短网址进行转换
@邪 罗刹,
已经用yourls弄的,二次开发难度大吗
@Showfom , 呵呵,只需要附加一个数据库转换程序 ~
程序并不以 Yourls 为基础的 ~