>  기사  >  백엔드 개발  >  URL 단축기 URL 단축기

URL 단축기 URL 단축기

WBOY
WBOY원래의
2016-07-25 09:07:531091검색

这是一个网上的代码,无需数据库,将要缩短的网址存在于一个同目录里的txt文件里。
演示:http://www.ucmbaa.org/u/
目的一是缩短了网址,二是不让搜索引擎识别这个地址。

  1. /*
  2. location of file to store URLS
  3. */
  4. $file = 'urls.txt';
  5. /*
  6. use mod_rewrite: 0 - no or 1 - yes
  7. */
  8. $use_rewrite = 1;
  9. /*
  10. language/style/output variables
  11. */
  12. $l_url = 'URL';
  13. $l_nourl = '没有输入URL地址';
  14. $l_yoururl = '你的短网址:';
  15. $l_invalidurl = '无效的URL.';
  16. $l_createurl = '生成短网址';
  17. //////////////////// NO NEED TO EDIT BELOW ////////////////////
  18. if(!is_writable($file) || !is_readable($file))
  19. {
  20. die('Cannot write or read from file. Please CHMOD the url file (urls.txt) by default to 777 and make sure it is uploaded.');
  21. }
  22. $action = trim($_GET['id']);
  23. $action = (empty($action) || $action == '') ? 'create' : 'redirect';
  24. $valid = "^(https?|ftp)://([a-z0-9 !*(),;?&=$_.-] (:[a-z0-9 !*(),;?&=$_.-] )?@)?[a-z0-9 $_-] (.[a-z0-9 $_-] )*(:[0-9]{2,5})?(/([a-z0-9 $_-].?) )*/?(?[a-z &$_.-][a-z0-9;:@/&%= $_.-]*)?(#[a-z_.-][a-z0-9 $_.-]*)?$";
  25. $output = '';
  26. if($action == 'create')
  27. {
  28. if(isset($_POST['create']))
  29. {
  30. $url = trim($_POST['url']);
  31. if($url == '')
  32. {
  33. $output = $l_nourl;
  34. }
  35. else
  36. {
  37. if(eregi($valid, $url))
  38. {
  39. $fp = fopen($file, 'a');
  40. fwrite($fp, "{$url}rn");
  41. fclose($fp);
  42. $id = count(file($file));
  43. $dir = dirname($_SERVER['PHP_SELF']);
  44. $filename = explode('/', $_SERVER['PHP_SELF']);
  45. $filename = $filename[(count($filename) - 1)];
  46. $shorturl = ($use_rewrite == 1) ? "http://{$_SERVER['HTTP_HOST']}{$dir}{$id}" : "http://{$_SERVER['HTTP_HOST']}{$dir}{$filename}?id={$id}";
  47. $output = "{$l_yoururl} {$shorturl}";
  48. }
  49. else
  50. {
  51. $output = $l_invalidurl;
  52. }
  53. }
  54. }
  55. }
  56. if($action == 'redirect')
  57. {
  58. $urls = file($file);
  59. $id = trim($_GET['id']) - 1;
  60. if(isset($urls[$id]))
  61. {
  62. header("Location: {$urls[$id]}");
  63. exit;
  64. }
  65. else
  66. {
  67. die('Script error');
  68. }
  69. }
  70. //////////////////// FEEL FREE TO EDIT BELOW ////////////////////
  71. ?>
  72. 短网址服务可以帮助你把一个长网址缩短,方便你在社交网络和微博上分享链接。

  73. ob_end_flush();
  74. ?>
复制代码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.