Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пустые строки, как их определить 
:(
    Опции темы
boris007
Дата 3.8.2006, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.6.2006

Репутация: нет
Всего: нет



Написал маленький любительский скрипт, который мне нужен в повседневной жизни.
В нём есть textarea, короче поле для текста ), туда я ввожу нужный мне текст и дальше идёт построчная обработка. Но вот незадача, часто в поле попадают пустые строки, и вызывают нежелательный результат скрипта. 
Вот собственно, я уже который день думаю как определить, что строчка являяется набором пробелов, можно было бы проверять наличие пробелов, но в вводимой мной информации могут содержатся пробелы, как бы это реализовать. smile 

Это сообщение отредактировал(а) boris007 - 3.8.2006, 08:09
PM MAIL   Вверх
Mal Hack
Дата 3.8.2006, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



PM ICQ   Вверх
boris007
Дата 3.8.2006, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.6.2006

Репутация: нет
Всего: нет



Я знал про empty(). Но как-то логически же неправильно, в строке же есть пробелы, значит она не пустая.Да и в мануале написано:
The following things are considered to be empty: 
"" (an empty string) 
0 (0 as an integer) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class)
Даже код написал, чтобы убедится 
Код

<? 
$p="                                  ";
if (empty($p)) {
echo "эта строка пустая";
               }
?>

Естественно скрипт ничего не выдал.


Это сообщение отредактировал(а) boris007 - 3.8.2006, 08:57
PM MAIL   Вверх
Mal Hack
Дата 3.8.2006, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Хм, может меня проглючило...
Тогда регуляркой проверять...
PM ICQ   Вверх
boris007
Дата 3.8.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.6.2006

Репутация: нет
Всего: нет



Это наверно запутал, назвал тему пустые строки, хотя эти строки вовсе не пустые  smile 
Спасибо, буду с регулярками разбираться, просто думал, что можно сделать это проще )
PM MAIL   Вверх
wil
Дата 3.8.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 28.3.2006

Репутация: нет
Всего: 4



попробуй перед проверкой на empty сделать $p = str_replace(" ", "", $p)
--------------------
 
PM MAIL WWW   Вверх
szz
Дата 3.8.2006, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



trim, друзья, trim!

Код

if(trim($str)){
   // строка пустая. Там только пробельные символы (пробелы, табы или новые строки)
}



--------------------
PM   Вверх
mr.Anderson
Дата 3.8.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Чего вы мучаетесь?
Код

$str = "                      ";

if( STRLEN( $str ) > 0 )

// то строка НЕ пустая

 smile Уж куда проще.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
ZlojEzh
Дата 3.8.2006, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 2
Всего: 15



szz, ты, наверное, имел ввиду:
Код

  if(!trim($str)){
     // строка пустая
  }


в любом случае твой вариант весьма спорен
строка '0' приводится к false
посему следующий пример выдаст 'empty', хотя строка содержит не только пробельные символы
Код

  $str = ' 0   ';
  if (trim($str)) {
    print '!empty';
  } else {
    print 'empty';
  }


PM MAIL ICQ   Вверх
mr.Anderson
Дата 3.8.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



ZlojEzh, нет, я имел в виду только то, что я написал. И причем тут приведение к FALSE ? Я же длину проверяю, а не значение!


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
szz
Дата 3.8.2006, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Цитата

ZlojEzh, нет, я имел в виду только то, что я написал. 


sim7,   он же ко мне вроде обращался )))

А твое
Код

$str = "                      ";
if( STRLEN( $str ) > 0 )
// то строка НЕ пустая

 выдаст как раз не пустую, хотя надо пустую )))

  Исправляю:
    
Код

if(trim($str)===''){
   // строка пустая, теперь уж точно :)
}



--------------------
PM   Вверх
mr.Anderson
Дата 3.8.2006, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: нет
Всего: 128



Упс. smile А мне показалось, ко мне.
Ну, а какая разница, пустая - не пустая. Всего делов-то, заменить знак:
Код

$str = "                   ";

if( STRLEN( $str ) === 0 )
 //строка пустая

И нечего тут с trim() мучиться.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
szz
Дата 3.8.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Так строку с пробелами надо считать пустой, такова задача!
  А у тебя он считается не пустой! 


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0829 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.