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

Форум Регулярные Выражения

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Преобразовать строку в массив, исключая знаки препинания

Сообщения:  [1-10]   [11-11] 

 
 автор: baston   (06.12.2009 в 19:39)   письмо автору
 
   для: Trianon   (06.12.2009 в 19:22)
 

Боже мой! Спасибо! Получилось, все-таки. Дотумкал:
$text = "вот, какие дела творятся в мире!";
preg_match_all ("/[а-яА-Я0-9]+/", $text, $arr, PREG_PATTERN_ORDER);
/*echo "<pre>";
print_r($arr);*/

foreach ($arr[0] as $value)
{

    echo $value, "<br>";
}

  Ответить  
 
 автор: Trianon   (06.12.2009 в 19:22)   письмо автору
 
   для: baston   (06.12.2009 в 19:09)
 

можно задать PREG_PATTERN_ORDER и взять сразу нужный массив.

  Ответить  
 
 автор: baston   (06.12.2009 в 19:09)   письмо автору
 
   для: Trianon   (06.12.2009 в 18:58)
 

Может быть я что-то недопонимаю, но что это мне дает? Я получил значения массива. Но почему не работает выражение через foreach?
П.С. Да, вроде вникаю, что значением массива являет Array.
Тогда как получить иначе нужные мне слова в массив?

П.С.2. Получаю двумерный массив, если правильно мыслю... Сейчас попробую узнать и сообразить, как вытащить эти значения. В документации написано, что обратиться можно типа так:
$arr[N][B]
, где N - порядковый номер совпадения, а В - номер скобки.
Туго идет...

  Ответить  
 
 автор: Trianon   (06.12.2009 в 18:58)   письмо автору
 
   для: baston   (06.12.2009 в 18:46)
 

поставьте вначале тег <PRE>
перед print_r()

  Ответить  
 
 автор: baston   (06.12.2009 в 18:46)   письмо автору
 
   для: neadekvat   (06.12.2009 в 18:37)
 

Читал и перечитывал. Если выводить массив на экран через print_r, то я вижу значения массива. А через foreach и echo - нет. Так в чем же моя ошибка?

  Ответить  
 
 автор: neadekvat   (06.12.2009 в 18:37)   письмо автору
 
   для: baston   (06.12.2009 в 18:35)
 

Документацию то по функции читали? А теперь еще раз.

  Ответить  
 
 автор: baston   (06.12.2009 в 18:35)   письмо автору
 
   для: Trianon   (06.12.2009 в 16:26)
 

Воспользовался вашей подсказкой и вот что получилось:
$text = "вот, какие дела творятся в мире!";
preg_match_all ('/[а-яА-Я0-9]+/', $text, $arr, PREG_SET_ORDER);

foreach ($arr as $value)
{
    echo $value, "<br>";
}


Не могу понять, почему выводится слово ARRAY, вместо вывода значений массива.

  Ответить  
 
 автор: baston   (06.12.2009 в 16:48)   письмо автору
 
   для: sim5   (06.12.2009 в 16:20)
 

Полагал, что да, работает. Это осталось с тех пор, пока я не добавил восклицательный знак в конце строки. Использовал для поиска слов с запятой и с пробелами. Теперь понял, что бессмысленно. Достаточно было " ".

  Ответить  
 
 автор: Trianon   (06.12.2009 в 16:26)   письмо автору
 
   для: baston   (06.12.2009 в 16:11)
 

preg_match_all()

  Ответить  
 
 автор: sim5   (06.12.2009 в 16:20)   письмо автору
 
   для: baston   (06.12.2009 в 16:11)
 

Во-первых print_r($ar); чтобы просмотреть массив. Во-вторых - объясните вот это:
" " & ", "
для чего и зачем? Вы полагаете что это работает?

  Ответить  

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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