[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_match
preg_match
Здравствуйте! Помогите, пожалуйста чайнику... нужно составить функцию preg_match. Граблю страницу с сайта и мне нужно выдрать оттуда строку:
- начало строки <b>20%:</b>
- конец строки &nbsp;<b>30%
Упарился уже... Помогите, пожалуйста

preg_match_all("Бла-бла-бла",$content, $r, PREG_PATTERN_ORDER);



Спустя 1 час, 25 минут, 32 секунды (27.03.2012 - 11:01) h234 написал(а):
$pattern = '/<b>20%:<\/b>(.*?) <b>30%/si'

Спустя 34 минуты, 49 секунд (27.03.2012 - 11:36) killer8080 написал(а):
h234
модификатор s там лишний smile.gif

Спустя 4 минуты, 17 секунд (27.03.2012 - 11:40) Guest написал(а):

$pattern = '/<b>20%:<\/b>(.*?) <b>30%/';
preg_match_all($pattern,$content, $r, PREG_PATTERN_ORDER);
print_r ($r);


Array ( [0] => Array ( ) [1] => Array ( ) )

Спустя 6 минут, 53 секунды (27.03.2012 - 11:47) killer8080 написал(а):
$content = ' dfgdg
ghrtghr
rththy
<b>20%:</b> - конец строки  <b>30%
dfrfh
htyjhtyj'
;

preg_match('#<b>20%:</b>.*&nbsp;<b>30%#i', $content, $r);
echo '<pre>'.htmlspecialchars(print_r($r, 1)).'</pre>';

Спустя 5 минут, 43 секунды (27.03.2012 - 11:53) h234 написал(а):
Цитата (killer8080 @ 27.03.2012 - 08:36)
h234
модификатор s там лишний :)

Почему s лишний? А если текст такой:
$content = ' dfgdg
ghrtghr
rththy
<b>20%:</b> - конец
строки <b>30%
dfrfh
htyjhtyj';

Спустя 2 минуты, 12 секунд (27.03.2012 - 11:55) Guest написал(а):
Цитата (h234 @ 27.03.2012 - 08:01)
$pattern = '/<b>20%:<\/b>(.*?) <b>30%/si'

убрал пробел перед <b> и все заработало. СПС)))

киллер, твой способо не рабочий

Спустя 2 минуты, 15 секунд (27.03.2012 - 11:57) killer8080 написал(а):
Цитата (Guest @ 27.03.2012 - 10:55)
киллер, твой способо не рабочий

Покажи фрагмент текста, в котором идет поиск. И если там юникод, нужен модификатор u



Спустя 2 минуты, 8 секунд killer8080 написал(а):
Цитата (h234 @ 27.03.2012 - 10:53)
Почему s лишний?

Я так понял ему нужен поиск по одной строке unsure.gif

Спустя 3 минуты, 41 секунда (27.03.2012 - 12:01) Guest написал(а):
<!--<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> -->
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
------------
......
<b>20%:</b> 13,18 / 12,82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>30%:</b> 41,22 / 39,63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>40%:</b> 115,54 / 110,01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>45%:</b> 6,75 / 6,40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>50%:</b> 311,65 / 294,14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>55%:</b> 9,54 / 8,97&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>60%:</b> 794,69 / 744,18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>65%:</b> 13,09 / 0,00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>75%:</b> 17,80 / 0,00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Т

Спустя 5 минут, 54 секунды (27.03.2012 - 12:07) killer8080 написал(а):
Guest
и хочешь сказать не работает?
Свернутый текст
$content = '<!--<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> -->
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
------------
......
<b>20%:</b> 13,18 / 12,82       <b>30%:</b> 41,22 / 39,63       <b>40%:</b> 115,54 / 110,01       <b>45%:</b> 6,75 / 6,40       <b>50%:</b> 311,65 / 294,14       <b>55%:</b> 9,54 / 8,97       <b>60%:</b> 794,69 / 744,18       <b>65%:</b> 13,09 / 0,00       <b>75%:</b> 17,80 / 0,00          Т'
;

preg_match_all('#<b>20%:</b>.*&nbsp;<b>30%#i', $content, $r);
echo '<pre>'.htmlspecialchars(print_r($r, 1)).'</pre>';

Спустя 31 минута, 58 секунд (27.03.2012 - 12:39) Guest написал(а):
твой вариант возвращает пустой массив

Спустя 1 час, 11 минут, 30 секунд (27.03.2012 - 13:50) killer8080 написал(а):
Цитата (Guest @ 27.03.2012 - 11:39)
твой вариант возвращает пустой массив

тут на форуме подсветка синтаксиса съедает &nbsp; и отображает пробелы, подставь свой контент, что перед этим запостил, и посмотри. Все там работает.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.