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
Форумы портала PHP.SU :: Версия для печати :: выборка данных
Форумы портала PHP.SU » PHP » Регулярные выражения » выборка данных

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

1. feodal24 - 11 Декабря, 2009 - 08:23:44 - перейти к сообщению
Привет друзья, помогите пожалуйста. 4-е сутки бьюсь с регулярками.

Как вырвать выделенный текст из html кода, вот html:

<tr>
<td><span style='color:gray'>0</span></td>
<td class='name'><a href='http://site[dot]com/index[dot]pnp?data=r[dot][dot][dot]#039;><img src='http://site.com/img/rus.gif' alt="Россия" title="Россия" width='16' height='10' style='vertical-align: middle' align='absMiddle' /> </a><a href='http://site.com/index.php?data=1500-programm'>programm</a> </td>
<td>
<img src='http://site.com/img/64.gif' width='10' height='10'>
<img src='http://site.com/img/87.gif' width='10' height='10'>
<img src='http://site.com/img/75.gif' alt="w" title="w" width='16' height='10'>
<img src='http://site.com/img/12.gif' width='10' height='10' alt='' title=''>
</td>
<td><img src='http://'http://site.com/img/275.gif' title='известие' alt='известие' width='14' height='12' border='0'></td>
<td>16</td>
<td>38</td>
<td>98</td>
<td>201</td>
</tr>

Учитывая, что 1500-programm'>programm
и 201 могут меняться

И вообще, реально это сделать регулярными выражениями.
Буду благодарен за любую помощь...
Спасибо.
2. trot - 11 Декабря, 2009 - 17:42:14 - перейти к сообщению
Пару вопросов для уточнения задачи.

1. Этот адрес (кроме того что меняется) константа или тоже может быть любой? Чем именно этот адрес должен отличаться от других адресов?
2. Вас интересуют только значения в последней ячейке? Т.е. уточните по каким признакам можно понять, что именно в этом месте мы ищем значение.


При решении вашей задачи надо хорошо понимать контекст поиска и требования к результату
3. feodal24 - 12 Декабря, 2009 - 09:08:22 - перейти к сообщению
адрес всегда не изменен
<a href='http://site.com/index.php?data=1500-programm'>programm</a>

Меняется только часть выделенная красным цветом.

2. Да интересует значение в последней ячейки (признак видимо, закрытый тег </tr>)
либо четвертое вхождение ТОЛЬКО цифр между тегами <td> </td>

P.S. Спасибо за интерес проявленный к моему вопросу
4. trot - 12 Декабря, 2009 - 13:06:20 - перейти к сообщению
Для поиска первого варианта используем следующее выражение

CODE (text):
скопировать код в буфер обмена
  1. preg_match("/(http:\/\/site\.com\/index\.php\?data=)([^']*)/",$str,$arr);


в $arr[1] будет лежать http://site[dot]com/index.php?data=
в $arr[2] - 1500-programm

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

Для второго варианта

CODE (text):
скопировать код в буфер обмена
  1. preg_match("|<td>(.*)</td>\s*\n*</tr>|",$str,$arr);


в $arr[1] будет лежать содержимое последней ячейки.
5. feodal24 - 18 Декабря, 2009 - 06:36:28 - перейти к сообщению
trot пишет:
Для поиска первого варианта используем следующее выражение
Для второго варианта


Огромнейшее спасибо.

 

Powered by ExBB FM 1.0 RC1