Skip to content

Instantly share code, notes, and snippets.

@bkilshaw
Created September 14, 2010 04:58
Show Gist options
  • Save bkilshaw/578572 to your computer and use it in GitHub Desktop.
Save bkilshaw/578572 to your computer and use it in GitHub Desktop.
<?php
define("ALTERNATE_LANGUAGE_DIRECTORY", "sp");
$referer = $_SERVER['HTTP_REFERER'];
$redirect = create_redirect($referer);
header("Location: $redirect");
function create_redirect($referer) {
$domain = clean_domain($referer);
$domain_array = domain_to_array($domain);
$language = get_language($domain_array);
if($language == "english") {
$redirect = build_spanish_link($domain_array);
} else if ($language == "spanish") {
$redirect = build_english_link($domain_array);
} else {
$redirect = build_spanish_link($domain_array);
}
return $redirect;
}
function clean_domain($domain) {
return str_replace("http://", "", $domain);
}
function domain_to_array($domain){
return explode('/', $domain);
}
function get_language($domain_array) {
if(array_search(ALTERNATE_LANGUAGE_DIRECTORY, $domain_array)) {
return "spanish";
} else {
return "english";
}
}
function build_english_link($domain_array) {
$cleaned_domain_array = array_remove_needle(ALTERNATE_LANGUAGE_DIRECTORY, $domain_array);
$redirect = "http://" . implode("/", $cleaned_domain_array);
return $redirect;
}
function build_spanish_link($domain_array) {
$spanish_domain_array = add_spanish($domain_array);
$redirect = "http://" . implode("/", $spanish_domain_array);
return $redirect;
}
function array_remove_needle($needle, $haystack) {
$cleaned_array = array();
foreach($haystack as $item) {
if($item != $needle) {
$cleaned_array[] = $item;
}
}
return $cleaned_array;
}
function add_spanish($domain_array) {
$last = array_pop($domain_array);
$domain_array[] = ALTERNATE_LANGUAGE_DIRECTORY;
$domain_array[] = $last;
return $domain_array;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment