首頁 > 後端開發 > php教程 > php 建立短位址 (var_export)的方法

php 建立短位址 (var_export)的方法

WBOY
發布: 2016-07-25 09:04:28
原創
1176 人瀏覽過
  1. >
  2. >
  3. 表格>
複製程式碼

處理頁面show.php:

  1. include 'functions.php';
  2. 包含'shorturls.php';
  3. $entry = $_POST['提交'];
  4. $url = $_POST['url'];
  5. $output = '';
  6. if($entry == '縮短網址' AND $url )
  7. {
  8. if(!in_array($url,$shortUrls))
  9. {
  10. $uif = alphaID (數($shortUrls),假,6);
  11. if (!array_key_exists($uif,$shortUrls))
  12. {
  13. $shortUrls[$uif] = $url;
  14. $file = fopen('shorturls.php','w');
  15. fwrite($file,'');
  16. fclose($file);
  17. $output = '原始網址:'.$url.'
    ;縮短Ulr : http:// www.yourdomain.com/api/s ='.$uif.'';
  18. }
  19. else $output = '存取錯誤';
  20. }
  21. else
  22. {
  23. $uif = array_search($url,$shortUrls);
  24. $output = '原始網址:'.$url.'
    ;縮短Ulr : http://www.yourdomain.com/api/s ='.$uif.'';
  25. }
  26. echo $output.'

    回傳';
  27. }
  28. ?>
複製程式碼

關聯頁面functions.php

  1. function alphaID($in, $to_num = false, $pad_up = false, $passKey 🎜> $index = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  2. if ($passKey !== null) {
  3. // 雖然此函數的目的只是使 ID y> // > // 使用此補丁Simon Franz (http://blog.snaky.org/)
  4. // 您可以選擇提供密碼以使其變得更加困難
  5. // 計算相應的數字ID
  6. for ($n = 0; $n
  7. $passhash = hash('sha256',$ passKey);
  8. $passhash = (strlen($passhash) ? hash('sha512',$passKey)
  9. : $passhash;
  10. for (🎜> : $passhash;
  11. for ( $n=0; $n
  12. array_multisort($p, SORT_DESC, $i);
  13. $index = 內爆($i);
  14. }
  15. $base = strlen($index);
  16. if ($to_num) {
  17. // 數字 $in = strrev($in);
  18. $out = 0;
  19. $len = strlen($in) - 1;
  20. for ($t = 0; $t $bcpow = bcpow($base, $len - $t);
  21. $out = $out + strpos($index, substr($in, $t , 1)) * $bcpow;
  22. }
  23. if (is_numeric($pad_up)) {
  24. $pad_up--;
  25. if ($pad_up > 0) $out -= pow ($base, $pad_up);
  26. }
  27. $out = sprintf('%F', $out);
  28. $out = substr($out, 0, strpos($out, '.' ));
  29. }
  30. else
  31. {
  32. // 數字-->> 字母代碼
  33. if (is_numeric($pad_up)) {
  34. $pad_up--;
  35. if ($pad_up > 0) $in += pow($base, $pad_up);
  36. }
  37. $out = "";
  38. for ($t = Floor(log($in , $base)); $t >= 0; $t--) {
  39. $bcp = bcpow($base, $t);
  40. $a = 下限($in / $bcp) % $base ;
  41. $out = $out 。 substr($index, $a, 1);
  42. $in = $in - ($a * $bcp);
  43. }
  44. $out = strrev($out); // 反轉
  45. }
  46. return $out;
  47. }
  48. ?>
複製程式碼
關聯頁shorturls.php

複製代碼
原則:將搭建的倉庫倉庫裡面,同時為產生之一個最後的鍵,之後把倉庫倉庫文本中,當然你也可以搭建到數據庫中,此搭建為搭建到文本中。

有關的函數

1. array_search() 函數 array_search(值,數組,嚴格) array_search() 函數與 in_array() 一樣,在記憶體中尋找一個鍵值。如果找到了該值,則符合元素的鍵名會被傳回。如果沒找到,則傳回 false。

2. var_export() 函數 此函數傳回關於傳遞給函數的變數的結構訊息,它和var_dump()類似,不同其傳回的表示是合法的PHP程式碼。 您可以將函數的第二個參數設為TRUE,從而傳回變數的表示。

比較 var_export() 和 var_dump().

最後是接受頁面redirect.php

    include 'shorturls.php';
  1. $uid = $_GET['uid'];
  2. $addr = ($uid AND array_key_exists($uid,$shortUrls)) ? $shortUrls[$uid]: '/';
  3. header('位置:'.$addr);
  4. ?>
複製程式碼
此頁需結合.htaccess 或.waccess 使用:

    RewriteEngine 開啟
  1. RewriteRule ^s=(.*)$ /redirect.php?uid=$1 [R=301,L]
複製程式碼
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板