Спарсить цену

Можно стандартной функцие разбить строку на подстроки и выбирать её по номеру строки. (от 0 до N, где n - количество получившихся строк)
PHP:
$str = '<tr><td>Бла-бла-бла</td>
<td>9.12</td>
<td>10.22</td>
<td>11.89</td>
</tr>';
 
$str_mas = explode ('</td>', $str);
 
$count_str_mas = count ($str_mas);
 
for ($i=0; $i<$count_str_mas; $i++)
{
    echo $str_mas[$i]; // здесь строки
   
}
 
Да неможет такого быть. Помещаем строки
HTML:
 <tr class="odd">
                    <td>10.15</td>
                    <td>11.23</td>
                    <td>12.49</td>
                </tr>
в файлик 1.txt

Запускаем скриптик.
PHP:
$page = file_get_contents ("1.txt");
 
$find = preg_match_all ("#<td>[0-9\.]{0,5}</td>#Uis",$page, $rez);
 
echo "<pre>";
print_r ($rez);


Может быть дело в том что страница с сервера запрашивается через
PHP:
 file_get_contents (" http://biz.liga.net/tek/oil/")
???????
 
Возможно, непонятно я объяснил, что мне нужно.
Вот адрес одной из страниц: Для просмотра ссылки Войди или Зарегистрируйся
В исходном коде есть такой кусок:
Код:
<tr class="odd">
                    <td>10.15</td>
                    <td>11.23</td>
                    <td>12.49</td>
                </tr>
Мне нужно сделать так, чтоб оттуда выбирались цены, все 3.
 
Знаете чего я никогда не мог понять ?
Если у вас нет познаний то зачем вы лезите в это. Если хотите получить знания то получайте их и используйте... У вас же в итоге все сводится к тому что вам нужно готовое. Ну пользуетесь вы регулярками ну если вам говарят о шаблоне а вы вообще не понимаете о чем речь.. Так прочтите информацию если не дается то брости гиблое дело...

PS. Хоть и сообщение одресовано 1 я говарю это обобщенно... ПРИ ЭТОМ НИ КАКОГО НЕГАТИВА ! Я просто возможно в грубой форме отвечаю за что прошу простить.

Постановка задачи:
Ресурс Для просмотра ссылки Войди или Зарегистрируйся
Требуемые данные:
  1. Минимальная
  2. Средняя
  3. Максимальная
Реализация: PHP
PHP:
<?php
// Адрес с которого получаем данные.
$url='http://biz.liga.net/tek/oil/a-95plus.htm';
 
// Запрос данных
echo $str=file_get_contents($url);
 
// Бред... иногда страница выдается пакованая gzip иногда чистая...
// Это поможет если контент пакованый.
if ($tmp=@gzinflate($str)) $str=$tmp;
 
// Получение именно того блока который нам нужен. (да я не строю сложного
// шаблона потому как так понятнее будит)
preg_match('#<tr class="odd">(.+)</tr>#smiU', $str, $block);
 
// Получаем все значения в полученном блоке выше (используем переменную $block
// в которой масив из 2 ключей [0] весь шаблон [1] только то что в скобках
// (сколько скобок столько и ключей + [0] это весь шаблон) )
preg_match_all('#\d+\.\d+#', $block[1], $out);
 
// в переменной $out у нас двумерный масив так как _all
//[0] - весь шаблон [0][0] первые данные и т.д.
 
// Делаем вывод.
echo '
Минимальная '.$out[0][0].'<br />
Средняя  '.$out[0][1].'<br />
Максимальная  '.$out[0][2].'<br />
';
 
?>
 
Дело в том что код dmbltro не работат вообще.
Тестил его код - работает. У вас скорее всего не работало потому как там иногда данные в gzip.
Так же в полученных данных не только теги есть но и табуляции... Кароче если брать его код то чистые данные будут такие:

PHP:
$unique_start = "<tr class=\"odd\">";
$unique_end = "</td>";
 
function cena($url, $unique_start, $unique_end)
{
    $code = file_get_contents($url);
    preg_match('/'.preg_quote($unique_start,'/').'(.*)'.preg_quote($unique_end, '/').'/Us', $code, $match);
    return trim(strip_tags($match[1]));
}
 
echo cena('http://biz.liga.net/tek/oil/a-95plus.htm', $unique_start, $unique_end);

То есть 2 функции trim and strip_tags что и зачем писать не буду инфа не секретная.

PS. меня наверно скоро флудерастом нарекут... из 50 тем на странице раздела php от меня посты есть в 17... :D
 
У вас скорее всего не работало потому как там иногда данные в gzip.
Да, так оно и было. ) Сам я просто php не очень умею...
 
$array=explode("</td>", $ваш_текст); // получаем массив, каждый элемент которого разделен "</td>"

echo strip_tags($array[3]); // выдаст 3й элемент без тегов
 
Назад
Сверху