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 :: preg_match_all вывод найденной строки

 PHP.SU

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


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

> Без описания
black_ru
Отправлено: 10 Июля, 2011 - 14:10:30
Post Id


Новичок


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


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




Как вывести всю строку со словом, которое было найдено в массиве?
CODE (htmlphp):
скопировать код в буфер обмена
  1. if (preg_match_all("/слово/i", "$text_of_file", $out)) {
  2. echo $out[0][0]  ;
  3.  }
 
 Top
Champion Супермодератор
Отправлено: 10 Июля, 2011 - 14:37:22
Post Id



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


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


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




"Это чтоб из вот такой строки" регулярка "/вот/" дала не "вот", а всю строку?
Надо регулярку переписать: /^.*?вот.*$/mi
 
 Top
black_ru
Отправлено: 10 Июля, 2011 - 15:22:17
Post Id


Новичок


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


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




Ага, спасибо.
А как вывести все найденные?
 
 Top
vsll
Отправлено: 10 Июля, 2011 - 15:25:29
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


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




PHP:
скопировать код в буфер обмена
  1. for ($i=0; $i< count($matches[0]); $i++) {
  2.   echo "matched: " . $matches[0][$i] . "\n";
  3.   echo "part 1: " . $matches[1][$i] . "\n";
  4.   echo "part 2: " . $matches[3][$i] . "\n";
  5.   echo "part 3: " . $matches[4][$i] . "\n\n";
  6. }
пример из мануала
http://www.php.su/functions/?preg_match_all
 
 Top
LIME
Отправлено: 10 Июля, 2011 - 15:34:43
Post Id


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


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


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




Vasiliya пишет:
пример из мануала
!!!!!
 
 Top
black_ru
Отправлено: 10 Июля, 2011 - 15:49:19
Post Id


Новичок


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


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




А точно, цикл.
Я думал, как-то по другому можно


Спасибо .
Вопрос решен.
 
 Top
Champion Супермодератор
Отправлено: 10 Июля, 2011 - 15:58:23
Post Id



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


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


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




ну можно не циклом. Можно var_dump($array), можно просто echo $array[1], $array[2] - dj сколько вариантов
 
 Top
black_ru
Отправлено: 10 Июля, 2011 - 17:58:45
Post Id


Новичок


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


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




var_dump($matches)) тоже интересно, только в этом случае, похоже ,придется вырезать при помощи preg_replace все эти

(Добавление)
А вывод var_dump($matches)) можно в переменную свести, чтобы потом еще раз применить preg_replace?
 
 Top
Champion Супермодератор
Отправлено: 10 Июля, 2011 - 18:46:12
Post Id



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


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


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




black_ru пишет:
ридется вырезать при помощи preg_replace все эти
И потом снова выводить var_dump-ом?) Не надо этим заниматься, это может занять бесконечное время.
black_ru пишет:
вывод var_dump($matches)) можно в переменную свест
Если воспользоваться var_export с вторым параметром, равным true, то можно записать в переменную. А еще можно прользоваться ob_get_contents().
 
 Top
LIME
Отправлено: 10 Июля, 2011 - 18:46:51
Post Id


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


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


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




black_ru пишет:
А вывод var_dump($matches)) можно в переменную свести, чтобы потом еще раз применить preg_replace?

а можно сначала попробовать это сделать?
или вы разрешения спрашиваете?
 
 Top
vsll
Отправлено: 10 Июля, 2011 - 18:48:22
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 530
Дата рег-ции: Февр. 2011  


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




извращенцы )
 
 Top
black_ru
Отправлено: 10 Июля, 2011 - 18:52:03
Post Id


Новичок


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


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




Ну вот как-то так можно? У меня не выходит пока
CODE (htmlphp):
скопировать код в буфер обмена
  1. $string = var_dump($matches);
  2. $pattern = "/Хрен/i";
  3. $replacement = "Редька";
  4. echo preg_replace($pattern, $replacement, $string));
  5.  

(Добавление)
А, ну то есть var_dump подразумевает, что в памяти ничего не осталось,
поэтому и нужен var_export?

P.S.
Все понял....
Спасибо

(Отредактировано автором: 10 Июля, 2011 - 19:23:20)

 
 Top
Champion Супермодератор
Отправлено: 10 Июля, 2011 - 19:21:56
Post Id



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


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


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




black_ru, пора прочитать описание обсуждаемых функций
 
 Top
black_ru
Отправлено: 10 Июля, 2011 - 19:52:48
Post Id


Новичок


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


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




Champion да спасибо.

CODE (htmlphp):
скопировать код в буфер обмена
  1. $string = var_export($matches, true);
  2. $pattern[0] = "/=>/";
  3. $pattern[1] = "/[')(,*0-9]/";
  4. $pattern[2] = "/array/";
  5. $replacement[0] = "<br>";
  6. $replacement[1] = "";
  7. $replacement[2] = "";
  8. echo preg_replace($pattern, $replacement, $string);
  9.  

прикольно, из того же мана, получается можно как угодно изменить вывод Улыбка
Пойду читать дальше.

(Отредактировано автором: 10 Июля, 2011 - 19:53:34)

 
 Top
black_ru
Отправлено: 11 Июля, 2011 - 01:35:24
Post Id


Новичок


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


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




Последнее хочу просить:
Я правильно добавляю, чтобы искать только целое слово в строке и выводить всю?
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (preg_match_all("/^.*?\b$srch\b.*/mi", $myfile, $matches))
  3.  

Почему-то сразу перестает искать слова с русскими символами.
 
 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