Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: trim для всех полей сразу — ?
 
 автор: SS   (07.12.2006 в 16:52)   письмо автору
 
 

У меня такой вопрос. Можно ли упростить такую нагроможденную комбинацию для удаления лишних пробелов на одну универсальную команду, которая удаляла бы лишние пробелы во всех приходящих методом POST полях?

$ds1=trim($ds1);
$de1=trim($de1);
$post1=trim($post1);
$ds2=trim($ds2);
$de2=trim($de2);
$post2=trim($post2);
$ds3=trim($ds3);
$de3=trim($de3);
$post3=trim($post3);
$ds4=trim($ds4);
$de4=trim($de4);
$post4=trim($post4);
$ds5=trim($ds5);
$de5=trim($de5);
$post5=trim($post5);
$ds6=trim($ds6);
$de6=trim($de6);
$post6=trim($post6);
$ds7=trim($ds7);
$de7=trim($de7);
$post7=trim($post7);
$ds8=trim($ds8);
$de8=trim($de8);
$post8=trim($post8);
$ds9=trim($ds9);
$de9=trim($de9);
$post9=trim($post9);
$ds10=trim($ds10);
$de10=trim($de10);
$post10=trim($post10);
и т.д............................

   
 
 автор: Loki   (07.12.2006 в 17:07)   письмо автору
 
   для: SS   (07.12.2006 в 16:52)
 

Можно. Но лучше расскажите откуда эти поля беруться, тогда вариантов будет сразу несколько.

   
 
 автор: cheops (из кафе)   (07.12.2006 в 17:09)
 
   для: SS   (07.12.2006 в 16:52)
 

Можно поступить следующим образом
<?php
  
foreach($_POST as $key => $value$_POST[$key] = trim($value);
?>

   
 
 автор: SS   (07.12.2006 в 18:42)   письмо автору
 
   для: cheops (из кафе)   (07.12.2006 в 17:09)
 

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

$ds1=str_replace("  ", " ", $ds1);
$de1=str_replace("  ", " ", $de1);
$post1=str_replace("  ", " ", $post1);
$ds2=str_replace("  ", " ", $ds2);
$de2=str_replace("  ", " ", $de2);
$post2=str_replace("  ", " ", $post2);
$ds3=str_replace("  ", " ", $ds3);
$de3=str_replace("  ", " ", $de3);
$post3=str_replace("  ", " ", $post3);
$ds4=str_replace("  ", " ", $ds4);
$de4=str_replace("  ", " ", $de4);
$post4=str_replace("  ", " ", $post4);
и т.д. .....................................

   
 
 автор: moonfox   (07.12.2006 в 21:44)   письмо автору
 
   для: SS   (07.12.2006 в 18:42)
 

а так
foreach($_POST as $key => $value) $value=str_replace(" ", "", $value);

   
 
 автор: Unkind   (07.12.2006 в 23:55)   письмо автору
 
   для: SS   (07.12.2006 в 18:42)
 


<?php
foreach($_POST as $key => $index)
{
    do
    {
    
$_POST[$key] = str_replace("  "" "$_POST[$key]);
    }
    while(
strpos($_POST[$key], "  ") !== false);
}
?>


P.S. А зачем? trim() это делает.

   
 
 автор: Trianon   (08.12.2006 в 09:30)   письмо автору
 
   для: Unkind   (07.12.2006 в 23:55)
 

>P.S. А зачем? trim() это делает.

и давно он такое делает?

   
 
 автор: Unkind   (08.12.2006 в 15:52)   письмо автору
 
   для: Trianon   (08.12.2006 в 09:30)
 

и давно он такое делает?
С момента создания этой функции авторами PHP, думаю. :))

   
 
 автор: Trianon   (08.12.2006 в 20:00)   письмо автору
 
   для: Unkind   (08.12.2006 в 15:52)
 

Ок. Разжуем.
trim удаляет пробелы с головы и с хвоста.
str_replace(" ", " ", $_POST[$key]) в цикле понижает серии пробелов до однократных.
Есть разница, неправда ли?

   
 
 автор: Unkind   (09.12.2006 в 09:11)   письмо автору
 
   для: Trianon   (08.12.2006 в 20:00)
 

Значит я ошибался :) Я думал и двойные тоже удаляет, помимо пробелов с "боков"...

   
 
 автор: SS   (08.12.2006 в 11:08)   письмо автору
 
   для: Unkind   (07.12.2006 в 23:55)
 

Спасибо всем за помощь. Да, действительно, trim() удаляет все лишние пробелы во вводимом тексте, независимо от их количества (двойные, тройные и т.д.), проверил...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования