UrlShort短网址程序制作完成

> 经过颇多挫折,小邪终于完成了灰常可爱的文本数据库短网址程序,现在运行良好,嘿嘿。
> 因为使用的是 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

Leave a comment

111 Comments.

  1. bolo 坐沙发!#1

    广告一下,我的短链接还原工具,适合没有梯子不能打开某些短链接的人
    短链接还原,AngelSolo不要收我广告费,哈哈

  2. 先看看 坐板凳!#2

    短网址也有好多人在用呢,介绍的很详细

  3. 一米 躺地板!#3

    我喜欢,等空了拿回去我自己搞一个,哈哈。

  4. GEZ鸽子 天花板!#4

    https不是安全站点吗?

  5. 开心凡人 下水道!#5

    果然短很多啊,呵呵

  6. 。。。cn后缀倒还蛮段。。只是现在谁还敢用。。 :biggrin:

  7. 这个很实用。。。明天好好看,晚上参加活动。嘿嘿。

  8. 刚进来就发现网页打开慢了好多。。。。。。原来换这个主题了,不过我另外的博客也在用。你这个短网址程序很好,可以推广推广。哈哈。

  9. 原来用的那个烂主机,很多都不支持,又一次在别人的指导下,搞了一个,没成功~
    顿时我就囧了,再也不搞了,老老实实写文

  10. 没多大用吧

  11. :wink: 以前在本地玩过URLShort。。。

  12. 不影响Seo么?

  13. > 您提供的 Url:http://wange.im

    > 缩短后的 Url:http://u.evlos.org/2k

    哈哈,调戏你的短网址~

  14. 不玩这个

  15. 世界最短的网址在这里:一个是 http://dk. 一个是 http://to. 注意后面有个点哦,试试小邪的伸长网址服务吧 :biggrin:

  16. 我看完了感觉很强悍的说,第一次看见这样的搞法

  17. ( ⊙o⊙ )哇 高手啊,以后有问题就来请教你了 O(∩_∩)O哈哈~~·

  18. 来你博客收益非浅,把你博客全部博文都看了一遍。
    也采集了一堆的资料到邮箱了。谢谢啊。
    我也不你终身采购了(rss)。

  19. 高手啊,支持一下!

  20. 靠,模板是自己做的吧。。程序是不是自己的?

  21. 汗,这东西我怎么用啊?

  22. 又是这么强的技术文章,你懂的可真多啊
    再过一周我就放假了,别忙了,假期给我当家教啊

  23. 缩短是为了什么啊

  24. 我来耍一耍:
    > 您提供的 Url:http://www.thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/wearejustdoingthistobestupidnowsincethiscangoonforeverandeverandeverbutitstilllookskindaneatinthebrowsereventhoughitsabigwasteoftimeandenergyandhasnorealpointbutwehadtodoitanyways.html
    > 缩短后的 Url:http://u.evlos.org/51

  25. > 您提供的 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

  26. :confused: 门外汉,飘过!

  27. 我怎么没看懂你博客呢?

  28. 太过深奥的技术型文章我一般直接无视,我就要成果就行了。。。

  29. 你丫也开始玩病毒式推广啦? :rolleyes:

  30. 还有这等好东西

  31. 来去试试我的

  32. 有个疑问,URL静态化后的长短,真的和字段长短有关系吗?就目前搜索引擎的能力来看,好像已经不是问题了吧?

  33. 文本数据库是方便,用的人越多但会生成很多文件的吧

  34. 不错不错

  35. 小邪开源否?开放API否?

  36. 偶弄了个超级帅的域名啊 zi.mu 字母 要不来给我开发个短网址吧 有报酬

    • @Showfom , 不好意思,那么长时间才回复你 ~
      这俩天小邪时间挤的只能到处看大家的博客 ~
      连自己的博客都没时间管了 ╮(╯▽╰)╭ ~
      呵呵,报酬意思一下就可以 ~
      你可以先说说所需要的功能吧 ~
      基本的也就下面这些:
      1)缩短网址,可以通过书签、API、网页等形式进行
      2)使用短网址进行转换

    • @Showfom , 呵呵,只需要附加一个数据库转换程序 ~
      程序并不以 Yourls 为基础的 ~ :biggrin:

  37. :exclaim: 还没搞过短网址,话说缩短后也没人会记啊

Leave a Reply

:evil: :razz: :wink: :rolleyes: :redface: :cry: :biggrin: :lol: :idea: :mrgreen: :mad: :exclaim: more »

[ Ctrl + Enter ]