[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Содержание переменной пробел
ohxxx
Ситуация следущая

была строка "big house" (между словами три пробела)

череp explode разобрал её но проблема в том что в масиве чать значений получается пустыми. (я как понимаю туда попадает пробел)


$text = 'big house';

$sdata = explode(" ", $text)


Собственно вопрос
1. Можноли explode сразу разобрать так чтобы небыло пустых значений


Заранее благодарен за помощ



Спустя 6 часов, 51 минута, 9 секунд (11.05.2010 - 07:53) gromitsu написал(а):
Смотри, возможно так сделать:
<?php 

$text = 'big house is empty is and scary a lot';

$text = deleteBootlegSpace($text);


$sdata = explode(" ", $text);
echo"<pre>";
print_r($sdata);
echo"</pre>";

function deleteBootlegSpace($text){
$spaces = array("' '","' '","' '","' '","' '");
$replace = array(""," "," "," "," ");
return preg_replace($spaces,$replace,$text);
}

?>

Спустя 1 час, 44 минуты, 54 секунды (11.05.2010 - 09:38) Michael написал(а):
Ну и свою версию добавлю(тоже заранее убираем лишние пробелы):
$str = 'ww    rr   99 kk     9999 jjjj   ----          7777';
$str = without_space($str);
echo '<pre>';
echo $str;
echo '</pre>';


function without_space($str) {
$quit = false;
$len1 = strlen($str);
while (!$quit) {
$len = $len1;
$str = str_replace(' ', ' ', $str);
$len1 = strlen($str);
if ($len == $len1) $quit = true;
}
return $str;
}

Спустя 1 час, 21 минута, 40 секунд (11.05.2010 - 11:00) ohxxx написал(а):
Спасибо за помошь пошол кодить smile.gif

Спустя 17 минут, 59 секунд (11.05.2010 - 11:18) DedMorozzz написал(а):
А разве так не проще?
$str = 'ww    rr   99 kk     9999 jjjj   ----          7777';
$str = preg_replace("#\ +#"," ",$str);
echo '<pre>';
echo $str;
echo '</pre>';

Спустя 1 час, 43 минуты, 6 секунд (11.05.2010 - 13:01) ohxxx написал(а):
$str = preg_replace("#\ +#"," ",$str);

кто может распиши само условие #\ +#
Хочется знать как тут символы влияют... а то я его нормально прочесть не могу .. не пойму зачем решотки '#' нужны (да да я в регулярных вообще нуб)

Спустя 4 минуты, 21 секунда (11.05.2010 - 13:05) DedMorozzz написал(а):
# - некий разделитель, на ровне с / |, но лишь с той разницей, что он являеться "нейтральным". Редко в коде встречаеться "шарп"(решётка), лишь в индексе цвета, лишь там его приходишться экранировать, т.е. найменее проблемный.
А "\ +" - обозначает любое количество пробелов от 1 до "скольки угодно", но обязательно подряд идущих. Итого выходит - находит все пробелы, буть там 1,2,3...n и заменяет на 1 пробел.

Спустя 3 минуты, 21 секунда (11.05.2010 - 13:08) ohxxx написал(а):
Большое спасибо за пояснение biggrin.gif

Спустя 12 минут, 32 секунды (11.05.2010 - 13:21) DedMorozzz написал(а):
Так эт то что надо было? Иль нечто другое хотел?

Спустя 14 минут, 50 секунд (11.05.2010 - 13:36) ohxxx написал(а):
Цитата (DedMorozzz @ 11.05.2010 - 10:21)
Так эт то что надо было? Иль нечто другое хотел?


Спасибо всё отлично именно то самое что доктор прописал wink.gif

Спустя 5 часов, 56 минут, 43 секунды (11.05.2010 - 19:32) MatrixGod написал(а):
$str = preg_replace("/ +/", " ", $str);

меняет любое кол-во пробелов подряд на 1 пробел.
потом прогоняй в explode();

Спустя 1 час, 34 минуты, 15 секунд (11.05.2010 - 21:07) DedMorozzz написал(а):
MatrixGod
и что ты этим хотел сказать? Выше написано "то-же самое" + твой вариант не сработает (;

Спустя 4 часа, 51 минута, 39 секунд (12.05.2010 - 01:58) MatrixGod написал(а):
DedMorozzz
почему это не сработает? все отлично работает!
на своем сайте я превращаю неизвестное кол-во пробелов в один именно этой строчкой...

Спустя 8 часов, 27 минут, 44 секунды (12.05.2010 - 10:26) DedMorozzz написал(а):
Да, ты прав, мона и без слеша.


_____________
Подпись отключена за НЕуплату
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.