Skip to content

Instantly share code, notes, and snippets.

@westonwatson
Created April 11, 2013 19:30
Show Gist options
  • Save westonwatson/5366472 to your computer and use it in GitHub Desktop.
Save westonwatson/5366472 to your computer and use it in GitHub Desktop.
encode numeric id's in URI/URL's
<?php
function encode_web_display_url($url_to_encode){
if ($url_to_encode){
//boom
$request = explode('/',urldecode($_SERVER['REQUEST_URI']));
//loop
foreach($request as $request_slice){
if (is_numeric($request_slice)){
//convert
$ids[]=base_convert($request_slice,10,36);
}
}
$encoded = implode('/',$ids);
return "http://wes.lotvantage.com/r.php/" . $encoded ;
}else{
return false;
}
}
function decode_web_display_url(){
$request = explode('/',$_SERVER['REQUEST_URI']);
//start at 2 if URI schema is DOMAIN/r.php/ID/ID/ID/ID
for($i=2;$i<count($request);$i++){
$request_slice = $request[$i];
if ($request_slice){
//build
$ids[]=base_convert($request_slice,36,10);
}
}
$encoded = implode('/',$ids);
return "http://wes.lotvantage.com/web_display/view/" . $encoded;
}
$url_to_encode = $_REQUEST['url'];
if ($url_to_encode){
//boom
$request = explode('/',urldecode($_SERVER['REQUEST_URI']));
//loop
foreach($request as $request_slice){
//echo "<p>{$request_slice}</p>".base_convert($request_slice,10,36);
if (is_numeric($request_slice)){
//build
//echo "<p>{$request_slice}</p>".base_convert($request_slice,10,36);
$ids[]=base_convert($request_slice,10,36);
}
}
$encoded = implode('/',$ids);
echo "<a href='http://wes.lotvantage.com/r.php/" . $encoded . "/'>" . $encoded . "</a>";
?>
<form>
<input name=url value="<?=$encoded;?>">
<input type=submit>
</form>
<?php
die();
}
//decode
$request = explode('/',$_SERVER['REQUEST_URI']);
for($i=2;$i<count($request);$i++){
$request_slice = $request[$i];
if ($request_slice){
//build
$ids[]=base_convert($request_slice,36,10);
}
}
$encoded = implode('/',$ids);
echo "<a href='http://wes.lotvantage.com/web_display/view/" . $encoded . "/'>" . $encoded . "</a>";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment