| Photoshop palette |
| Customizing Max Interface |
| Learn Flash |
| Dreamweaver Enable/Disabled script |
| Understand Sessions |
| Redefine tags and create classes with Css |
navigation
Share Tips
Php dirname()
Returns the directory name of the passed string string dirname (string path)
Redirecting visitors by browser language
Learn php/walkthrough
One of the common feature of many websites is the "choose language" option, usually indicated with a list of flags.. so, with php is possible to give a professional touch to your web site letting php choosing which is your visitors' language as the choice is based on the default browser language used at that moment.
In this case is useful to create a function to speed up your site building or mantainance, simply calling the function as often as needed. But first of all let's examine wich parameter we have to deal with.
Open up your favourite php editor program and type
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
remember any time to close the code between the tags <? and ?>
I've tested this echo in IE 6 and Firefox. If you still don't know how affortable
is a browser like Firefox, get
Firefox and try yourself.
IE gives this string as result of the echo
en,it;q=0.5
The same php code is Firefox gives this:
en,it;q=0.8,it-it;q=0.5,en-us;q=0.3
Pay attention at the first parts of this two strings, they start with en, the
rest as ,it show the accept language at the second place, but wait a moment
to see how to work with this.
Now all we need is a php function that can get the first and the second letter
of the string, we're going to use substr().
The first parameter of substr is the $_SERVER['HTTP_ACCEPT_LANGUAGE']; the one
that returns the string already seen.
Now try
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
echo $result = substr($lang, 0, 2);
// $lang is the variable, 0 is the point where start to count as the beginnig
// and 2 is where to stop trimming the string, so only two letters.
So we obtain: en.
This code gives en as result, all that we wanted.
Well, to speed up our code let's create a function. If you're familiar with
C, there's nothing new in php in creating a function. Every function must be
declared typing function and must have a name, followed by (), that may contain
one or more variables. In this case there are no variables. The fuction code
must be closed with { and }
function yourfunctionname($optionalparameter)
// NOT use ; or it won't work to end this line code
{
//your code
}
Now let's see our function..
function comefrom()
{
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
if (substr($lang, 0, 2) == 'en')
{
// if the user's browser language is set to english
// do something
} else {
// if the user's browser language is NOT set to english
// do something else
}
}
The //do something comment may be replaced with everything you want, one of the feature may be the automatic redirection to the user's page language
function comefrom()
{
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
if (substr($lang, 0, 2) == 'en')
{
header("Location: english.php");
} else {
header("Location: french.php");
}
}
english.php and french.php are two pre-made pages with content thought for
different users.
header() is a php function that makes the redirect to the "Location: ....
" indicated.
Now, let's seen how to verify the correct working of our function with different languages
Go to the second page
