Heim >Backend-Entwicklung >PHP-Tutorial >网址缩短 短网址程序

网址缩短 短网址程序

WBOY
WBOYOriginal
2016-07-25 09:07:531114Durchsuche

这是一个网上的代码,无需数据库,将要缩短的网址存在于一个同目录里的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}\r\n");
  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. =$output?>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn