Кодирование и декодирование строк

В конце главы 3 было показано, как использовать метод GET для отправки дан
ных в программу, добавляя параметры после URLадреса сценария. Тогда этот
метод применялся только для отправки значения, представляющего собой чис
ло или одно слово. Таким же образом этот процесс был дан и в предидущей главе. А что
делать, если необходимо передать несколько слов как одно значение перемен
ной?

Для таких случаев понадобится функция urlencode ( ) . Как видно из ее име
ни, функция кодирует (encode) строку для того, чтобы она была правильно пе
редана как часть URL. В частности, функция urlencode () заменяет пробелы
на знаки плюс ( + ) и преобразовывает специальные символы, например апо
строф, в более подходящие для URL знаки. Синтаксис функции выглядит сле
дующим образом:

$String = urlencode($String);

Отправим только что созданную переменную $Name в страницу, которая при
ветствует пользователя по имени и фамилии.
Использование функции urlencode

  1. Откройте сценарий HandleForm.php в текстовом редакторе (см. также
    листинг 5.3).
  2. После строки 14 добавьте следующее:
  3. $Name = urlencode($Name);
    print ("<P>Click <A target="_blank" href="welcome.php?Name=$Name"> here</A> to see
    —your personalized g r e e t i n g ! n " ) ;

  4. Создайте новый документ с именем welcome.php. Вы можете написать код
    сами, опираясь на уже изученный материал, или скопировать его из лис
    тинга 5.5.
  5. Новая страница получит значение переменной $Name из сценария Handle
    Form.php. Используя это, покажем, как можно передавать значение из одной
    страницы на другую, а затем в следующую (из form.html в HandleForm.php
    и в welcome.php).

  6. Сохраните оба сценария (листинг 5.4), загрузите их на сервер и протести
    руйте в браузере (рис. 5.85.14).
  7. Листинг 5.4 т Отметим следующее: вопервых, тэг HREF это еще один эле
    мент HTML, требующий использования кавычек, которых следует избегать
    в функции print ( ) , вовторых, в РНР при отправке в браузер переменная SName
    будет заменена ее значением (см. рис. 5.10)

    .
    1 <HTML>
    2 <HEAD>
    3 <TITLE>Form Results/Using Strings</TITLEx/HEAD>
    4 <BODY>
    5 <?php
    6 /* Эта страница получает и обрабатывает данные, принятые
    от "form.html". */
    7 $FirstName = trim($FirstName);
    8 $LastName = trim($LastName);
    9 $Email = trim($Email);
    10 $Comments = trimf$Comments);
    11 $Name = $FirstName " " . $LastName;
    12 print ("Your name is $Name.<BR>n");
    13 print ("Your Email address is $Email.<BR>n");
    14 print ("This is what you had to say:<BR>n $Comments<BR>n");
    15 $Name = urlencode($Name);
    16 print ("<P>Click <A target="_blank" href="welcome.php?Name=$Name"> here</A>
    to see your personalized greeting!n");
    17 ?>
    18 </BODY>
    19 </HTML>

    Листинг 5.5 т Как и наш первый сценарий «Hello, world!» (см. главу 1), стра
    ница welcome.php создает простое, немного отредактированное приветствие
    в браузере (рис.). Однако это приветствие персонализировано.

    1 <HTML>
    2 <HEAD>
    3 <TITLE>Welcome!</TITLEx/HEAD>
    4 <BODY>
    5 <?php
    6 print ("<BxCENTER>Hello, $Name . </CENTERx/B>n") ;
    7 ?>
    8 </BODY>
    9 </HTML>







    Функция urldecode ( ) выполняет действие, обратное действию urlencode ( ) :
    она берет закодированную для URL строку и преобразует ее обратно в обычную
    стандартную форму.’

    Запомните, что значения, посланные прямо из формы, автоматически кодируют
    ся в адресе URL перед отправкой и приходят в сценарий уже закодированными.
    Функция urlencode ( ) используется только тогда, когда необходимо закодиро
    вать данные вручную.

    В главе 11 мы рассмотрим функции, очень похожие на только что рассмотренную
    napcmyurlencode ( ) addslashes () и stripslashes ( ) . Первая подготавли
    вает данные для ввода в базу данных, экранируя проблематичные символы (оди
    нарные и двойные кавычки, обратный слеш). Вторая открывает эти самые сим
    волы вновь, удаляя символ экранирования. Синтаксис выглядит следующим
    образом:

    $Data = addslashes($Data);
    $Data = stripslashes($Data);

    Как и с функцией urlencode ( ) , перекодирование символов происходит ав
    томатически при получении данных из формы в сценарий. Последний выпол
    няет запись полученных переменных в базу данных.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: