powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP Вырезать кусок HTML
9 сообщений из 9, страница 1 из 1
PHP Вырезать кусок HTML
    #38025269
BadimB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день

надо из HTML вырезать кусочек и вставить в другое место
застрял, помогите
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<html>
<head>
</head>
<body>
<?php
$file = fopen("http://belita72.ru/shop/parfjumerija/atlantica", "r");

while (!feof ($file)) {
    $buffer = fgets($file, 4096);

$buffer=iconv("utf-8", "cp1251", $buffer);
preg_match_all("#<div id=\"goods_cont\">(.+)<\/div>#",$buffer,$match1);
echo $match1[1][0];
}



из исходного HTML для начала надо вырезать блок <div id="goods_cont"> ...</div>
внутри него хранятся цены и названия

Не получается
1. Просто вырезать кусочек
2. Внутри этого div есть еще парочка "дивов" как правильно найти нужный закрывающий

пример страницы исходника (фрагмент):
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
...<div id="goods_cont"><table border="0" cellspacing="1" cellpadding="3" width="100%" class="goods-list">
<tbody><tr valign="top"><td width="50%"><div class="list-item" id="id-item-5103"><table border="0" cellpadding="0" cellspacing="6" width="100%"><tbody><tr valign="top">
<td width="150"></td>
<td>

<a style="font-size:16px" href="/shop/5103/desc/atlantika-alpha-omega-edt-100-ml-muzh">АТЛАНТИКА ALPHA &amp; OMEGA EDT 100 ML муж</a>
<div style="margin-top:10px;">
		</div>отзывы (0)

<div style="font-size: 18px; margin:10px 0;"><span class="id-good-5103-price">469.22руб.</span></div></div>...
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025271
SergSW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BadimB,

BadimB2. Внутри этого div есть еще парочка "дивов" как правильно найти нужный закрывающий

Если нужный </div> последний то использовать не жадные выражения.
Но тут надежней руками считать.

1. находите начало нужного блока.
2. Заводите счетчик дивов с значением 1.
3. Ищете в тексте за смещением п.1 offs_begin(<div) и offs_end(</div>) если offs_begin < offs_end - счетчик дивов +1.
4. В противном случае -1.
5. Если счетчик не 0 переход на п.3.
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025277
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если этих дивов ВСЕГДА парочка, то так и искать <div>...</div>...</div>...</div>
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025367
BadimB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, проблему с дивами можно решить действительно перечитав их

Но у меня еще проблема регулярными выражениями
preg_match_all - никак не хочет вырезать нужный кусок текста
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025374
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BadimBpreg_match_all - никак не хочет вырезать нужный кусок текстаpreg_match_all должен находить. Или не находить. А вырезать - не его забота.
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025471
BadimB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с вырезанием/нахождением разобрался
пошел другим путем

из кода:
Код: html
1.
<div style="font-size: 18px; margin:10px 0;"><span class="id-good-5105-price">456.78руб.</span></div>



вырезаем цену
Код: php
1.
2.
3.
4.
5.
6.
7.
$template = "/price..[[:digit:]]{1,3}\.[[:digit:]]{1,2}/";
    
    // производим поиск
    $result = preg_match($template, $buffer, $maches); 
    if ($result){
    echo "Совпадений: $result<br>";
    print_r($maches);



получаем в результате
Код: plaintext
Array ( [0] => price">456.78 ) Совпадений: 1

теперь задача - чтобы остались только цифры (цена)
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025502
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужное - скобками выбирается.
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025537
BadimB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
покажи как
...
Рейтинг: 0 / 0
PHP Вырезать кусок HTML
    #38025568
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
'/ненужное ненужное (нужное) ненужное/'
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP Вырезать кусок HTML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]