网址缩短的工作原理主要有两种形式

2016年09月22日来源:980短网址原创分类:网址缩短阅读(23评论(0

  网址缩短的发展历史其实不长,他的出现主要是基于微博、短博客、移动营销的崛起而发展起来的。在这些环境中,过长的网址使得用户视觉体验度极差,所以有必要将很长的网址进行缩短。那么网址缩短的原理是什么呢?下文将简要介绍一下。

  网址缩短的工作原理主要有两种形式

网址缩短

  1、将原网址通过MD5转化成一串小字母,这种方法简单,但是这种算法是不可逆的,所以别想着直接反转短地址,如果你想深入了解这种算法,可以百度“MD5”+”网址缩短”

  2、数据库类型的存储式,通过给每个长网址自动分配ID和CODE来实现网址的转换,然后当用户访问时,通过查询数据里面ID和CODE对应的原网址,实现实时跳转。这种方式是可逆的,而且便于管理和统计,目前主流的网址缩短程序都是应用的这种方式,如:phurl,yourl,suo.nz网址缩短

  PHP实现网址缩短的代码如下:

  function get_last_number() {

  $db_result = mysql_query("SELECT last_number FROM ".DB_PREFIX."settings") or db_die(__FILE__, __LINE__, mysql_error());

  $db_row = mysql_fetch_row($db_result);

  return $db_row[0];

  }

  function increase_last_number() {

  mysql_query("UPDATE ".DB_PREFIX."settings SET last_number = (last_number + 1)") or db_die(__FILE__, __LINE__, mysql_error());

  return (mysql_affected_rows() > 0) ? true : false;

  }

  function code_exists($code) {

  $db_result = mysql_query("SELECT COUNT(id) FROM ".DB_PREFIX."urls WHERE BINARY code = '$code'") or db_die(__FILE__, __LINE__, mysql_error());

  $db_row = mysql_fetch_row($db_result);

  return ($db_row[0] > 0) ? true : false;

  }

  function alias_exists($alias) {

  $db_result = mysql_query("SELECT COUNT(id) FROM ".DB_PREFIX."urls WHERE BINARY alias = '$alias'") or db_die(__FILE__, __LINE__, mysql_error());

  $db_row = mysql_fetch_row($db_result);

  return ($db_row[0] > 0) ? true : false;

  }

  function url_exists($url) {

  $db_result = mysql_query("SELECT id, code, alias FROM ".DB_PREFIX."urls WHERE url LIKE '$url'") or db_die(__FILE__, __LINE__, mysql_error());

  if (mysql_num_rows($db_result) > 0) {

  return mysql_fetch_row($db_result);

  }

  return false;

  }

  function generate_code($number) {

  $out = "";

  $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";

  while ($number > 53) {

  $key = $number % 54;

  $number = floor($number / 54) - 1;

  $out = $codes{$key}.$out;

  }

  return $codes{$number}.$out;

  }

  function insert_url($url, $code, $alias) {

  mysql_query("INSERT INTO ".DB_PREFIX."urls (url, code, alias, date_added) VALUES ('$url', '$code', '$alias', NOW())") or db_die(__FILE__, __LINE__, mysql_error());

  return mysql_insert_id();

  }

  function update_url($id, $alias) {

  mysql_query("UPDATE ".DB_PREFIX."urls SET alias = '$alias' WHERE id = '$id'") or db_die(__FILE__, __LINE__, mysql_error());

  }

  function get_url($alias) {

  $db_result = mysql_query("SELECT url FROM ".DB_PREFIX."urls WHERE BINARY code = '$alias' OR alias = '$alias'") or db_die(__FILE__, __LINE__, mysql_error());

  if (mysql_num_rows($db_result) > 0) {

  $db_row = mysql_fetch_row($db_result);

  return $db_row[0];

  }

  return false;

  }

  function get_hostname() {

  $data = parse_url(SITE_URL);

  return $data['host'];

  }

  function get_domain() {

  $hostname = get_hostname();

  preg_match("/.([^/]+)/", $hostname, $domain);

  return $domain[1];

  }

标签: 网址缩短

上一篇:短网址数据统计的市场价值

下一篇:巧用短网址在微博推广

精彩评论
评论
热门文章
980安全专家教您认识短链接安全
防护恶意网址用短链接欺骗的对策
对付恶意短链接我有妙招
蓝瘦、香菇,每天和短链接技术打交道
短信利用短网址撬动移动营销市场
文章归档
2016年12月
2016年11月
2016年10月
2016年09月
2016年07月
2016年06月
热门标签
短网址
短链接
网址缩短
短网址服务
短网址应用
短网址营销
短网址生成
缩短网址
短链接生成
短网址还原
短网址检测法
自定义短网址