|
|
|
| Есть html файл в котором есть таблица структура колонок такая
<td onmouseout="this.style.backgroundColor=''" onmouseover="this.style.backgroundColor='#00A2FF'" bgcolor=#efefef><b><nobr> <a href="user.php?session=&do=view&id=28309&p=311&sq=4&searchvalue=&field_0=&field_1=&inofirm=&field_10=&checkmatch=&dbot=&dbdo=&dmot=&dmdo=" onmouseover="popup2('<b><font face=arial size=2 color=#000000><center>Полное описание','')" onmouseout="removeBox()"><font style="text-decoration: none; font-color: black">5-3182132 К1 </td>
Помогите пожалуйста как мне из этого выражения выдернуть значение 5-3182132 К1 | |
|
|
|
|
|
|
|
для: mirage
(11.10.2006 в 10:50)
| |
<?php
// Получаем текущие курсы валют в rss-формате с сайта www.cbr.ru
$content = get_content();
// Разбираем содержимое, при помощи регулярных выражений
preg_match_all("|<font style=\"text-decoration: none; font-color: black\">(.+?) <\/td>|", $content, $out);
unset($out[0]);
echo "<pre>";
print_r($out[1]);
echo "</pre>";
function get_content()
{
// Формируем ссылку
$link = "xxxx";
// Загружаем HTML-страницу
$fd = fopen($link, "r");
$text="";
if (!$fd) echo "Запрашиваемая страница не найдена";
else
{
// Чтение содержимого файла в переменную $text
while (!feof ($fd)) $text .= fgets($fd, 4096);
}
// Закрыть открытый файловый дескриптор
fclose ($fd);
return $text;
}
?>
|
| |
|
|
|
|
|
|
|
для: mirage
(11.10.2006 в 10:50)
| | Можно поступить следующим образом
<?php
$text = file_get_contents("имя_файла.html");;
$pattern = "|<font[^>]+black\">(.*?) </td>|is";
preg_match($pattern, $text, $out);
echo $out[1];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(11.10.2006 в 12:55)
| | а как поступить, если этих вхождений может быть несколько и все надо сохранить в массив? | |
|
|
|
|
|
|
|
для: victoor
(11.10.2006 в 13:29)
| | В этом случае вместо функции preg_match() используют preg_match_all()
<?php
$text = file_get_contents("имя_файла.html");;
$pattern = "|<font[^>]+black\">(.*?) </td>|is";
preg_match_all($pattern, $text, $out);
echo "<pre>";
echo $out[1];
echo "</pre>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(11.10.2006 в 13:41)
| | спасибо все работает
но только вот один вопрос как исключить дубликаты (т.е что бы с помошью функции preg_match_all в массив не записывались одинаковые данные) | |
|
|
|
|
|
|
|
для: Mirage
(11.10.2006 в 17:38)
| | и еще один вопрос как можно добавить пустую запись в массив если между тегами ничего нет
пример <td></td> | |
|
|
|
|
|
|
|
для: Mirage
(11.10.2006 в 17:38)
| | Лучше в массив записать дубликаты, а потом почистить его содержимое при помощи функции array_unique(). | |
|
|
|
|
|
|
|
для: cheops
(11.10.2006 в 13:41)
| | Спасибо, работает | |
|
|
|
|
|
|
|
для: victoor
(11.10.2006 в 18:33)
| | ЕШЕ РАЗ БЛАГАДАРЕН ТЕБЕ CHEOPS | |
|
|
|
|
|
|
|
для: Mirage
(12.10.2006 в 10:56)
| | черт возми проблема за проблемой
регулярные выражения изучаю всего второй день :)
есть файл
</tr></td></table>
Предельная частота вращения подшипников, приведенная в каталоге соответствует классу точности 0. Класс точности 5 позволяет повысить скорость шариковых радиальных и радиально-упорных подшипников, а также радиальных роликоподшипников с короткими цилиндрическими роликами в 1,5 раза, класс 4 - в 2 раза. Для радиально-упорных подшипников с коническими роликами, а также упорных шарикоподшипников с коническими роликами, а также упорных шарикоподшипников класс точности 5 позволяет повысить скорость в 1,1 раза, а класс точности 4 - в 1,2 раза.
<center>
значит последовательность такая сначало обязательно идет
строка со значением </tr></td></table>
потом пустая строка
потом то что мне нужно выташить (выделенно жырным)
затем строка <center>
помогите написать регулярное выражение | |
|
|
|
|
|
|
|
для: Mirage
(12.10.2006 в 16:18)
| | Можно поступить следующим образом
<?php
$text = file_get_contents("имя_файла.html");;
$pattern = "|</tr></td></table>[\s]+(.*?)<center>|is";
preg_match_all($pattern, $text, $out);
echo "<pre>";
echo $out[1];
echo "</pre>";
?>
|
PS Под новые вопросы, лучше заводить новые темы. | |
|
|
|
|
|
|
|
для: Mirage
(12.10.2006 в 16:18)
| |
<?php
{
$from = preg_quote('</tr></td></table>
','#'); $to = preg_quote('
<center>','#');
$text='--
</tr></td></table>
регулярные выражения изучаю всего второй день :)
есть файл
<center>
----
</tr></td></table>
ЕШЕ РАЗ БЛАГАДАРЕН ТЕБЕ CHEOPS
<center>
----
</tr></td></table>
и еще один вопрос как можно добавить пустую запись в массив если между тегами ничего нет
<center>
--';
preg_match_all("#$from([\s\S]*)$to#U", $text, $res, PREG_SET_ORDER);
foreach($res as $n => $v) $res[$n] = $res[$n][1];
echo '<pre>'; print_r($res);
}
?>
|
| |
|
|
|