|
|
|
| есть код HTML
обозначу "вчу" = всё что угодно - любые теги пробелы и пр.
вчу ЧИСЛО1 вчу Слово1 вчу ЧИСЛО2 вчу Слово2 вчу ЧИСЛО3 вчу Слово3 вчу
или м.б. так
вчу Слово1 вчу ЧИСЛО1 вчу Слово2 вчу ЧИСЛО2 вчу Слово3 вчу ЧИСЛО3 вчу
нужно вытащить числа
if(preg_match($pattern, $text, $out))
{
$d1 = $out[1];
$d2 = $out[2];
$d3 = $out[3];
echo "$t1 $t2 $t3 <br >";
}
можно за два прохода (буду определять по пустому $out[...])
! вчу может соприкасаться с числами и словами. напр. <тег>111111 </тег>
Спасибо. | |
|
|
|
|
|
|
|
для: pittop
(26.11.2011 в 00:28)
| | А насколько эти вчу между словами и числами разообразны и как сильно они изменяются? Нужно хотя бы количество тэгов, лучше, конечно, файл с конкретным примером (чтобы можно было воспроизвести и отладить ситуацию). | |
|
|
|
|
|
|
|
для: cheops
(26.11.2011 в 00:34)
| | это выдача с форумов типа
---
3000 Сообщений в 300 Тем от 500 Пользователей
---
Всего тем: <b>2000</b> Всего сообщений: <b>20000</b>
---
<dt>Тем</dt>
<dd>300</dd>
<dt>Сообщений</dt>
<dd>1,530</dd>
<dt>Пользователи</dt>
<dd>2,490</dd>
---
<div>
Тем: 17,030,
Сообщений: 151,231,
Пользователи: 5,468
</div>
---
такая вот мура
а там м.б. и <strong> и <b> и без них и "Сообщений:" - непредсказуемые вариации тегов
и теги могут примыкать...
напишите, если не трудно, универсальное что-то, я с вариациями покручу.
Или проще программно выпарсить, чем регуляркой? | |
|
|
|
|
|
|
|
для: pittop
(26.11.2011 в 01:01)
| | Может проще просто между <dd> и </dd> число взять?
Только тут придется пользоваться preg_match_all(), а не preg_match(). | |
|
|
|
|
|
|
|
для: cheops
(26.11.2011 в 01:49)
| | к сожалению, я совсем не разбираюсь в рег.выр. (ибо потребность - раз в три года),
то что я написал - это
$pattern = "|.+Сообщений:\s+.+>(\d+).+\s+Тем:\s+.+>(\d+).+\s+Пользователей:\s+.+>(\d+).+\s+|";
:)
пожалуйста , напишите полностью $pattern с "/<dd>([\d,]+)</dd>/" | |
|
|
|
|
|
|
|
для: pittop
(26.11.2011 в 01:53)
| | Я имел в виду следующий скрипт
<?php
$text = "<dt>Тем</dt>
<dd>300</dd>
<dt>Сообщений</dt>
<dd>1,530</dd>
<dt>Пользователи</dt>
<dd>2,490</dd>";
$pattern = "|<dd>([\d,]+)</dd>|";
preg_match_all($pattern, $text, $out);
echo "<pre>";
print_r($out[1]);
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.11.2011 в 12:40)
| | Спасибо. | |
|
|
|