Изза небрежности пользователя при вводе информации, а иногда изза неак
куратного HTMLкода часто к строкепеременной добавляются лишние пробе
лы. Перед тем как применять подобные строки, эти пробелы обязательно нуж
но удалить. В таком случае вам удастся избежать множества проблем. Строка
с невидимым дополнительным пробелом уже не будет совпадать с такой же
строкой без пробела. Лишние пробелы, посланные в Webбраузер, могут иска
зить вид страницы, а пробелы, отправленные в базу данных, или cookieфайлы
вызвать еще более неприятные последствия. Например, если пароль содержит
концевые пробелы, он не будет действителен при введении без пробелов.
Функция trim ( ) автоматически отсекает лишние пробелы в начале и конце
строки (но не в середине). Используется следующий формат функции trim( )
$String = " extra space before and after text";
SString = trim($String) ;
// Переменная $String теперь равна “extra space before and after text”.
Вернемся к сценарию HandleForm.php из главы 3 и на этот раз вниматель
но и грамотно обработаем все полученные от пользователя строки.
-
Выполнение действия
- Откройте сценарий HandleForm.php в текстовом редакторе (листинг 5.1).
Листинг 5.1 т Первая версия сценария HandleForm.php совсем проста, так
что в него нужно добавить некоторые дополнительные средства обработки
полученных данных. - В листинг 5.1 после строки 6 (комментарий) добавьте следующую строку:
$LastName=trim($LastName);
$Email = trim($Email);- Сохраните сценарий (листинг 5.2) все еще как HandleForm.php, загрузи
те его на сервер и протестируйте в браузере (рис. 5.35.5).
Листинг 5.2. Кроме отсечения лишних пробелов от всех получаемых дан
ных, я изменил также название страницы, хотя этого можно и не делать.
1 <HTML>
2 <HEAD>
3 <TITLE>Form Results</TITLEx/HEAD>
4 <BODY>
5 <?php
6' /* Эта страница получает и обрабатывает данные, принятые
от "form.html". */
7 print ("Your first name is $FirstName. <BR>n" ) ;
8print ("Your last name is $LastName.<BR>n" ) ;
9print ("Your Email address is $Email .<BR>n" ) ;
10 print ("This is what you had to say:<BR>n $Comments<BR>n" )
11 ?>
12</BODY>
13</HTML>
SFirstName = trim($FirstName);
Убрав концевые пробелы из переменной $FirstName, вы исключите пере
дачу в браузер такого утверждения как “Your f i r s t name is _Larry_”, содержа
щего лишние пробелы (рис. ).
Приведение в порядок адреса электронной почты очень полезно, так как
лишние пробелы могут сделать адрес нерабочим.
$CommentS = trim($Comments);
Функция t r i m ( ) работает одинаково независимо от того, откуда взята стро
ка: из короткого фрагмента текста (как переменная $FirstName или $ Email),
из текстового окна HTML или параграфа из текстовой области.
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 = trim($Comments);
11 print "Your first name is $FirstName.<BR>n";
12 print "Your last name is $LastName.<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 ?>
16 </BODY> • ' '
17 </HTML>
Для удаления лишних пробелов только в начале строки или только в ее конце ис
пользуются функции Itrirnf) и rtrim() соответственно. В остальном они при
меняются точно так же, как и функция trim ( ) :
$String = rtrim($String);
$String = ltrim($String);