Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужно регулярное выражение.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Кто разбирается в регулярках, помогите.
Medallion
Отправлено: 25 Мая, 2012 - 21:49:37
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012  
Откуда: Херсон, Украина


Помог: 7 раз(а)




Привет всем!
Суть такова.
Мне нужно вырезать слова в строке, находящийся между символами +
Например, строка:
$string = '+Строка 1+, какие-то дальше символы, неважно пробелы всякие и другие закорючки+Строка 2+ и так далее';

Вырезать строки между символами + и поместить их в массив

Буду признателен за помощь!
 
 Top
DeepVarvar Супермодератор
Отправлено: 25 Мая, 2012 - 21:54:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




(Отредактировано автором: 25 Мая, 2012 - 21:55:04)

 
 Top
Medallion
Отправлено: 25 Мая, 2012 - 22:00:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012  
Откуда: Херсон, Украина


Помог: 7 раз(а)




Вот код:
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = '+Строка 1+, какие-то дальше символы, неважно пробелы всякие и другие закорючки+Строка 2+ и так далее';
  3. preg_match_all('/\+\w+\+/s', $str, $m);
  4.  

Выводит в браузер
 array(1) { [0]=> array(0) { } }

А мне нужно
array(0 => 'Строка 1, 1=> 'Строка 2');
И так далее
(Добавление)
Есть ещё варианты ?!
 
 Top
LIME
Отправлено: 25 Мая, 2012 - 22:43:41
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




вместо \w+
.+?
 
 Top
Medallion
Отправлено: 25 Мая, 2012 - 23:10:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 253
Дата рег-ции: Май 2012  
Откуда: Херсон, Украина


Помог: 7 раз(а)




Всё хорошо, но мне не нужен многомерный массив. Мне нужен один ассоциативный.
В этом случае, создается массив с ключом 0 и значением еще одного массива, в котором и лежит тот массив который мне нужен сразу.
Например, вот так я его могу вытащит, но нужно проще.
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = '+Строка 1+, какие-то дальше символы, неважно пробелы всякие и другие закорючки+Строка 2+ и так далее';
  3.  
  4. preg_match_all('/\+.+?\+/s', $str, $m);
  5.  
  6. foreach($m as $key => $value) {
  7.         foreach($value as $keys => $values) {
  8.                 echo $values.'<br>';
  9.         }
  10. }
  11.  

(Добавление)
Наподобие того, что я хочу, я нашел одну функцию, но она не совсем как надо работает, вот пример:
PHP:
скопировать код в буфер обмена
  1.  
  2. $info = "WJ Gi1more:wjgilmore@hotmail.com | Columbus, Ohio";
  3. // Ограничители - двоеточие (:), вертикальная черта (|) и запятая (.)
  4. $tokens = ":|,";
  5. $tokenized = strtok($info, $tokens);
  6. // Вывести элементы массива $tokenized
  7. while ($tokenized) :
  8. echo "Element = $tokenized<br>";
  9. // Обратите внимание: при последующих вызовах strtok
  10. // первый аргумент не передается
  11. $tokenized = strtok($tokens);
  12. endwhile;
  13.  

(Добавление)
Напишу подробней. Я хочу в строке найти слова, которые стоят между символами +
и записать их в переменные. Тоесть считываю файл, на хожу в строках, например
+NEWS+ и еще например +COMMENTS+
Все это обрабатывается регуляркой и на выходе мы имеем две переменные:
$NEWS и $COMMENTS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB