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

Форум PHP

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

 

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

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

тема: Как разделить строку на отдельные слова?
 
 автор: sega_z   (27.08.2011 в 13:52)   письмо автору
 
 

Допустим есть строка: "Во поле берёза стояла"

Как с помощью PHP разделить всю строку на отдельные слова и занести их в массив?

  Ответить  
 
 автор: nikita2206   (27.08.2011 в 14:00)   письмо автору
 
   для: sega_z   (27.08.2011 в 13:52)
 

str_word_count()

  Ответить  
 
 автор: f111   (27.08.2011 в 14:42)   письмо автору
 
   для: nikita2206   (27.08.2011 в 14:00)
 

а что не explode() ?

[поправлено модератором]

  Ответить  
 
 автор: nikita2206   (27.08.2011 в 14:49)   письмо автору
 
   для: f111   (27.08.2011 в 14:42)
 

зачем использовать не по назначению функции? к тому же експлоуд не разберется со знаками препинания, переносами, и еще кучей служебных символов

[поправлено модератором]

  Ответить  
 
 автор: f111   (27.08.2011 в 14:51)   письмо автору
 
   для: nikita2206   (27.08.2011 в 14:49)
 

про знаки препинания автор ничего не говорил

[поправлено модератором]

  Ответить  
 
 автор: nikita2206   (27.08.2011 в 14:54)   письмо автору
 
   для: f111   (27.08.2011 в 14:51)
 

ну ок, мне в принципе все равно
только автор то все равно скажет, что ему надо и знаки препинания резать

  Ответить  
 
 автор: f111   (27.08.2011 в 15:01)   письмо автору
 
   для: nikita2206   (27.08.2011 в 14:54)
 

автор рассудите нас)))

а то в загашнике остались как мин preg_split() и split()

p.s. nikita2206 пардон, не взглянул кому пишу) надеюсь sega_z не пропустит

  Ответить  
 
 автор: sega_z   (27.08.2011 в 15:04)   письмо автору
 
   для: nikita2206   (27.08.2011 в 14:54)
 


<?php

$str 
"Hello friend, you're
        looking          good today!"
;

$a   str_word_count($str1);

print_r($a);
?> 



Выводит: Array ( [0] => Hello [1] => friend [2] => you're [3] => looking [4] => good [5] => today )

А как вывести просто каждое слово отдельно, без всяких лишних символов?

  Ответить  
 
 автор: cheops   (27.08.2011 в 15:07)   письмо автору
 
   для: sega_z   (27.08.2011 в 15:04)
 

Что под "лишним" символом имеется в виду? В английском ' является частью слова, такого слова как re нет. Слово "во-первых" содержит лишние символы?

  Ответить  
 
 автор: f111   (27.08.2011 в 15:50)   письмо автору
 
   для: cheops   (27.08.2011 в 15:07)
 

оффтоп: cheops если вы знакомы с модератором передайте пожалуйста

1) ссылки те не для рекламы, а для онлайн проверки кода, не отходя от кассы
2)
>а что не explode() ?
>
>[поправлено модератором]

"а чё не ...?" => "а (чего|почему) не ...?" но никак не "а что..."

p.s. как передадите удаляйте. заранее спасибо)

  Ответить  
 
 автор: valera_21   (27.08.2011 в 15:39)   письмо автору
 
   для: sega_z   (27.08.2011 в 13:52)
 

не знаю я всегда пользуюсь explode() и доволен на все 100%
иногда даже вот так делаю(для автора)

$url= "www.softtime.ru/forum/pstadd.php";
list($home,$path,$file) = explode("/",$url);

и потом можно каждую переменную отдельно использовать!

  Ответить  
 
 автор: cheops   (27.08.2011 в 16:09)   письмо автору
 
   для: valera_21   (27.08.2011 в 15:39)
 

explode() штука хорошая, но не всегда, например, выше sega_z приводит пример, когда в строке подряд идет несколько пробелов и переводы строк. В этом случае будет более удобно специализированная функция или регулярные выражения.

  Ответить  
 
 автор: sega_z   (27.08.2011 в 18:36)   письмо автору
 
   для: cheops   (27.08.2011 в 16:09)
 

А если в строке сначало удалить все пробелы, то это будет функцией считаться как одно слово?

  Ответить  
 
 автор: cheops   (27.08.2011 в 19:19)   письмо автору
 
   для: sega_z   (27.08.2011 в 18:36)
 

Конечно, как иначе можно будет разделить слова? Обычно не удаляют пробелы, заменяют несколько подряд идущих одним пробельным символом.

  Ответить  
 
 автор: nikita2206   (27.08.2011 в 19:34)   письмо автору
 
   для: cheops   (27.08.2011 в 19:19)
 

но для этого тоже регулярка нужна

это я для автора

  Ответить  
 
 автор: sega_z   (27.08.2011 в 19:56)   письмо автору
 
   для: cheops   (27.08.2011 в 19:19)
 

Вообщем я думаю так будет лучше, т.к. слова уже заносятся в массив, что мне и нужно:


<?php

$str 
"Привет, как дела!";

$a str_word_count($str1);

echo 
"$a[0]$a[1]$a[2]$a[3]$a[4]";
?>


Только я забыл, как в цикле вывести все значения массива?
Ведь так не совсем правильно: echo "$a[0], $a[1], $a[2], $a[3], $a[4]";

  Ответить  
 
 автор: nikita2206   (27.08.2011 в 22:42)   письмо автору
 
   для: sega_z   (27.08.2011 в 19:56)
 

:\
foreach ($a as $str) echo $str;

  Ответить  
 
 автор: sega_z   (27.08.2011 в 23:14)   письмо автору
 
   для: nikita2206   (27.08.2011 в 22:42)
 

Всем участникам большое спасибо за помощь!!!

  Ответить  
Rambler's Top100
вверх

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