0
|
1 <?
|
|
2 // =====================================================
|
|
3 // URLLog PHP-script for redirecting ShortURLs
|
|
4 // (C) Copyright 2006 Tecnic Software productions (TNSP)
|
|
5 // =====================================================
|
|
6
|
|
7 // URLLog datafile
|
|
8 $urlFilename = "data.urllog";
|
|
9
|
|
10 // =====================================================
|
|
11 // Helper functions
|
|
12 $idStr = "ABCDEFGHIJKLNMOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
13
|
|
14 function myerr() {
|
|
15 header("Status: 404 Not Found");
|
|
16 echo "404 Not Found";
|
|
17 exit;
|
|
18 }
|
|
19
|
|
20 // Check arguments
|
|
21 if (!isset($argv[0])) myerr();
|
|
22
|
|
23 // Calculate urlID
|
|
24 $urlStr = $argv[0];
|
|
25 $urlLen = strlen($urlStr);
|
|
26 if ($urlLen < 1) myerr();
|
|
27
|
|
28 for ($urlID = 0, $i = 0; $i < $urlLen; $i++) {
|
|
29 $urlID *= strlen($idStr);
|
|
30
|
|
31 $n = strpos($idStr, $urlStr[$i]);
|
|
32 if ($n !== FALSE) {
|
|
33 $urlID += $n;
|
|
34 } else
|
|
35 myerr();
|
|
36 }
|
|
37
|
|
38 // Find the URL
|
|
39 $urlFile = fopen($urlFilename, "r");
|
|
40 if (!$urlFile) myerr();
|
|
41
|
|
42 $urlFound = 0;
|
|
43 while (!feof($urlFile) && !$urlFound) {
|
|
44 $urlItems = split(" ", fgets($urlFile, 4096), 5);
|
|
45 if ($urlItems[4] == $urlID) $urlFound = 1;
|
|
46 }
|
|
47
|
|
48 fclose($urlFile);
|
|
49
|
|
50 // Output result
|
|
51 if ($urlFound) {
|
|
52 header("Location: ".$urlItems[0]);
|
|
53 } else
|
|
54 myerr();
|
|
55
|
|
56 exit;
|
|
57 ?> |