|
|
|
|
|
для: vasso_m
(25.04.2007 в 02:16)
| | Знаки $ я выбрал в качестве ограничителей шаблона регулярного выражения. preg-движку такие требуются. Согласен, $ - неудобоваримо.
Модификатор i - нечувствительность к регистру символов, Модификатор m - обработка нескольких строк как одной.
Фактически, модификаторы добавлены по привычке - ни тот, ни другой не оказывают существенного влияния на разбор.
В самом шаблоне используются следующие классы символов:
[\s]+ - spaces - пробельные символы
[\w]+ - words - слова
[\d]+ - digits - цифры. де факто - целые числа
[\d\.]+ - digits - цифры и точка . де факто - вещественные числа
Остальное - литералы и захватывающие скобки. Вроде всё, никаких особых премудростей.
UPD. Только что проверил, такой шаблон также справляется:
$ptn = '|<tr>[\s]+<td id="([\w]+)">([\w]+)/([\w]+)</td>[\s]+<td>([\d\.]+)</td>[\s]+<td>([\d\.]+)</td>[\s]+</tr>|';
|
| |
|
|
|
|
|
|
|
для: Trianon
(24.04.2007 в 17:40)
| | Спасибо, код работает, но хотелось бы понять, как именно.
Если есть время, объясните пожалуйста. Больше всего интересно в $ptn, что это за $ в начале строки и $im в конце. | |
|
|
|
|
|
|
|
для: vasso_m
(24.04.2007 в 17:00)
| |
<?php
$text = file_get_contents('http://www.alfa-forex.ru/_rates.html');
$ptn = '$<tr>[\s]+<td id="([\w]+)">([\w]+)/([\w]+)</td>[\s]+<td>([\d\.]+)</td>[\s]+<td>([\d\.]+)</td>[\s]+</tr>$im';
preg_match_all($ptn, $text, $m1, PREG_SET_ORDER);
foreach($m1 as $key => $val) unset($m1[$key][0]);
$ptn2 = '$<td colspan="3" align="right">([\d]+\.[\d]+\.[\d]+)[\s]+([\d]+\:[\d]+)[\s]+([\S]+)[\s]$im';
preg_match($ptn2, $text, $m2);
unset($m2[0]);
echo '<pre>'; print_r($m1); print_r($m2);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(24.04.2007 в 13:54)
| | Нужно получить котировки, сами значения из таблицы. например в массив.
Например,
$arr[] = ( "name" => "EUR/USD",
"bid" => "1.3582",
"offer" => " 1.3585"
); | |
|
|
|
|
|
|
|
для: vasso_m
(24.04.2007 в 09:10)
| | Данные какого рода нужны? | |
|
|
|
|
|
|
|
для: vasso_m
(24.04.2007 в 13:19)
| | зайдите в форум регулярок | |
|
|
|
|
|
|
|
для: vasso_m
(24.04.2007 в 09:10)
| | кто знает? | |
|
|
|
|
|
|
| У меня есть страница с котировками http://www.alfa-forex.ru/_rates.html. Мне надо выбрать с нее данные и передать в массив.
Данные я получил, преобразовал их в строку, а как дальше выбрать значения - не понимаю
$fcontents = file ('http://www.alfa-forex.ru/_rates.html');
for ( $i = 0; $i < count($fcontents); $i++ )
{
$fcontents[$i] = trim($fcontents[$i]);
}
$str = implode("\n", $fcontents);
|
Мне надо выдрать данные из html кода | |
|
|
|
|