 
Кодирование URL на стороне сервера
Если пользователь сам не формирует ссылку, как, например, поисковый запрос в URL, а только щелкает по заранее сгенерированным ссылкам, то
URL можно сформировать на сервере, и там же закодировать.
1. Передача спец.символов
Если в передаваемых в данных есть символы, которые являются специальными URL-символами, то данные нужно закодировать с помощью функции urlencode().
$value = "abcd/.,;&'[]{}:?<>xyz";
echo "<a href='?...&x=".urlencode($value)."'>Передать</a>";
# Отобразить. Обратная раскодирование не требуется.
echo $_GET['x'];
2. Передача строковых данных в зашифрованном виде
Иногда требуется скрыть данные от просмотра. В таких случаях данные можно предварительно зашифровать с помощью функции base64_encode().
$f = "image1.jpg";
# Зашифровать и закодировать
$f = urlencode(base64_encode($f));
# Передать
echo "<a href='?...&x=$f'>Передать</a>";
# Расшифровать
$f = base64_decode($xdat[1]);
# Отобразить
echo "
<img src='images/$f'>
";
3. Передача массивов и объектов
До сих пор мы рассматривали передачу текстовых данных. Но передавать через URL можно данные любого типа, в том числе, массивы и объекты. Для этого последние нужно сериализовать, а затем закодировать, одним из способов, описанных выше, например:
$arr = array('name'=>'Иван Петров', 'age'=>35, 'professon'=>'web-designer');
echo "<a href='?...&x=".urlencode(serialize($arr))."'>Передать</a>";
# Десериализовать и отобразить
$arr = unserialize($_GET['x']);
print_r($arr);
|