2012-06-06 4 views
1

я одно предложение сохранить в поле базе данных, я хочу, чтобы разбить его на словах, но слова должны быть отделены друг от комы, как это:Разделить фразу на слова, разделенные запятыми

This, is, test, text 

Я попытался что-то с explode(), но это не помогло.

+2

Как сделал [ 'explode'] (HTTP: // тел p.net/explode) не работает? Это именно то, что вам нужно! –

+0

Почему бы нам не построить функцию str_word_count(), а затем снова взорвать, чтобы добавить запятые –

+0

Ну, EXPLODE просто взрывает его, но у меня нет запятых между словами. – SomeoneS

ответ

4

Вы могли бы сделать

$text = "This is test text"; 
echo str_replace (" ", ", ", $text); // This, is, test, text 
+0

Аргументы не в правильном порядке, должны быть: 'str_replace ('', ',', $ text) ; ' –

+0

, если' $ text' имеет несколько пробелов, результат будет примерно таким: 'This,,, is,, test, text' – flowfree

+0

beware,' "Это тестовый текст" 'will return' "This,, is , test, text ". Возможно, он захочет искать 'preg_replace'. –

3

Вы можете сделать preg_split() разделить слова на основе, по меньшей мере, одно пространство между (хотя восклицательный знак с окружающими пространствами также будет рассматриваться как слово); после этого вы вставляете их обратно вместе.

echo join(', ', preg_split('/\s+/', $str)); 

С другой стороны, пусть wordwrap сделать работу для вас, украсить и undecorate:

echo join(', ', explode("\0", wordwrap($s, 1, "\0"))); 
1

Я знаю, что это не самый эффективный способ, но если вы хотите использовать взорваться, вам нужно использование взрывать также:

<?php 

$foo = 'this is a test'; 
$bar = implode(', ', explode(' ', $foo)); 
print_r($bar); 

?> 

покажет: this, is, a, test

Смежные вопросы