Поиск

Удаление концевых пробелов

Изза небрежности пользователя при вводе информации, а иногда изза неак куратного 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 и на этот раз вниматель но и грамотно обработаем все полученные от пользователя строки.

    Выполнение действия
  1. Откройте сценарий HandleForm.php в текстовом редакторе (листинг 5.1). Листинг 5.1 т Первая версия сценария HandleForm.php совсем проста, так что в него нужно добавить некоторые дополнительные средства обработки полученных данных.
  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>
  3. В листинг 5.1 после строки 6 (комментарий) добавьте следующую строку:
  4. SFirstName = trim($FirstName);

    Убрав концевые пробелы из переменной $FirstName, вы исключите пере дачу в браузер такого утверждения как "Your f i r s t name is _Larry_", содержа щего лишние пробелы (рис. ).

  5. $LastName=trim($LastName);
    $Email = trim($Email);
  6. Приведение в порядок адреса электронной почты очень полезно, так как лишние пробелы могут сделать адрес нерабочим.

    $CommentS = trim($Comments);

    Функция t r i m ( ) работает одинаково независимо от того, откуда взята стро ка: из короткого фрагмента текста (как переменная $FirstName или $ Email), из текстового окна HTML или параграфа из текстовой области.

  7. Сохраните сценарий (листинг 5.2) все еще как HandleForm.php, загрузи те его на сервер и протестируйте в браузере (рис. 5.35.5). Листинг 5.2. Кроме отсечения лишних пробелов от всех получаемых дан ных, я изменил также название страницы, хотя этого можно и не делать.
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);