ФорумПрограммированиеPHP для идиотов → Как обрезать html код?

Как обрезать html код?

  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 27 июня 2008 г. 8:42

    Всем привет,

    я часто случайно видел такую вещь, скрипт, татуреал в интернете, но вот когда мне это надо, я не могу найти!

    в общем мне просто нужно тырить с доугого сайта информацию о цене бензина в Москве.
    например вот этот сайт: http://benzin.golosmsk.ru/

    как мне получать информацию с того сайта о бензине?
    я знаю, надо писать file_get_contents, и потом как-то вырезать этот код, но я не знаю как:

    <div class="box2_bg">

    <div class="price_list"><b>АИ-80</b> <font size="-3">в среднем</font> 20,66 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,27</font></div>
    <div class="price_list"><b>АИ-92</b> <font size="-3">в среднем</font> 24,01 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,21</font></div>

    <div class="price_list"><b>АИ-95</b> <font size="-3">в среднем</font> 25,02 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,21</font></div>
    <div class="price_list"><b>АИ-98</b> <font size="-3">в среднем</font> 26,94 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,31</font></div>
    <div class="price_list"><b>ДТ</b> <font size="-3">в среднем</font> 24,33 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,44</font></div>

    </div>
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 27 июня 2008 г. 9:13, спустя 31 минуту 36 секунд

    тут не надо обрезать html код
    тут надо с помощью регулярок вытащить данные между html кодом
    как общаться регулярками — смотреть в факе
    все умрут, а я изумруд
  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 27 июня 2008 г. 9:39, спустя 25 минут 7 секунд

    я всё прочитал, но у меня не получилось написать скрипт :-(
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 27 июня 2008 г. 9:55, спустя 16 минут 26 секунд

    а что у тебя получилось ?
  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 27 июня 2008 г. 10:10, спустя 14 минут 58 секунд

    мм, не люблю, когда так домогаются..
    я прочитал http://ru2.php.net/manual/ru/ref.pcre.php и http://pyha.ru/forum/topic/19.0 и не понял, какими надо вообще пользоваться функциями

    нашёл скриптик, но мне это не помогло. может вы сможете его изменить?:

    $fd= fread(fopen("http://URL HERE", "r"), 100000);  

    if ($fd)  
           {  
       $start= strpos($fd, "START HERE UNIQUE HTML CODE!");  
       $finish= strpos($fd, "END HERE UNIQUE HTML CODE!");  
       $length= $finish-$start;  
       $code=Substr($fd, $start, $length);  
       }  

    echo $code;


    или вот


    echo '<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr>';

    $GrabURL = ""; //- Complete URL of the page your grabbing from!
    $GrabStart = "";
    $GrabEnd = "";

    $OpenFile = fopen("$GrabURL", "r"); //- DO NOT CHANGE
    $RetrieveFile = fread($OpenFile, 200000); //- Reduce This To Save Memory
    $GrabData = eregi("$GrabStart(.*)$GrabEnd", $RetrieveFile, $DataPrint);
    $DataPrint[1] = str_replace("</dt><br /><br />", "<BR>", $DataPrint[1]);
    $DataPrint[1] = str_replace("<dt>", "", $DataPrint[1]);
    $DataPrint[1] = str_replace("</dt>", "", $DataPrint[1]);
    $DataPrint[1] = str_replace("<DL>", "", $DataPrint[1]);
    $DataPrint[1] = str_replace("</DL>", "", $DataPrint[1]);
    $DataPrint[1] = str_replace("<dl>", "", $DataPrint[1]);
    $DataPrint[1] = str_replace("</dl> </td>", "</td>", $DataPrint[1]);
    $DataPrint[1] = str_replace("</dl> </td>", "</td>", $DataPrint[1]);
    $DataPrint[1] = str_replace('cellpadding="4"', "", $DataPrint[1]);

    $DataPrint[1] = str_replace('<font face="Arial,helvetica" size="2">', '<font face="Verdana,helvetica" size="1">', $DataPrint[1]);
    //- $DataPrint[1] = str_replace("", "", $DataPrint[1]);

    fclose($OpenFile); //- DO NOT CHANGE
    echo $DataPrint[1]; //- DO NOT CHANGE
    echo '</TR></TABLE>';
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 июня 2008 г. 15:53, спустя 5 часов 43 минуты 12 секунд

    XoxMa™, не надо никаких скриптов качать… ты программировать хочешь научиться или херней все время страдать?

    Научись пользоваться регулярными выражениями!

    вот пример текста, который надо разобрать:
    <b>text</b>


    регулярное выражение
    <?php
    $text = '<b>text</b>';
    preg_match('/<b>(\w{4})<\/b>/', $text, $P);
    print $P[1];
    ?>


    результат
    text
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 27 июня 2008 г. 16:28, спустя 34 минуты 28 секунд

    XoxMa™,


    <?php
    $text = '
    <div class="box2_bg">

    <div class="price_list"><b>АИ-80</b> <font size="-3">в среднем</font> 20,66 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,27</font></div>
    <div class="price_list"><b>АИ-92</b> <font size="-3">в среднем</font> 24,01 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,21</font></div>

    <div class="price_list"><b>АИ-95</b> <font size="-3">в среднем</font> 25,02 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,21</font></div>
    <div class="price_list"><b>АИ-98</b> <font size="-3">в среднем</font> 26,94 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,31</font></div>
    <div class="price_list"><b>ДТ</b> <font size="-3">в среднем</font> 24,33 руб. <font color="#83BD41" size="-3"><img src="/images/arrow_top.gif" />&nbsp;0,44</font></div>

    </div>';

    preg_match_all('/<b>([АИДТ\-0-9]*).*>\s([0-9,]*).*;([0-9,]*).*?/i', $text, $P);

    print '<pre>';
    foreach($P as $K=>$V) {
    if($K === 0) continue;
    print_r($V);
    }
    print '<pre>';
    ?>
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 28 июня 2008 г. 11:31, спустя 19 часов 3 минуты 35 секунд

    большое спасибо, но меня не это интересовало, а то, как вырезать переменную $text
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 28 июня 2008 г. 11:49, спустя 17 минут 40 секунд


    большое спасибо, но меня не это интересовало, а то, как вырезать переменную $text


    как вытащить блок данных с сайта http://benzin.golosmsk.ru/, который помещен сейчас в переменную $text?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 28 июня 2008 г. 12:53, спустя 1 час 3 минуты 39 секунд

    да.
    я знаю, это нереально лёгкий вопрос, но вот я и создал тему здесь на форуме, потому что не получается у меня сделать это.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 28 июня 2008 г. 14:25, спустя 1 час 32 минуты 9 секунд

    http://benzin.golosmsk.ru/images/benzin_price.gif xD
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 28 июня 2008 г. 14:27, спустя 2 минуты 3 секунды

    XoxMa™, задача усложнилась, теперь у них картинка :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • XoxMa

    Сообщения: 135 Репутация: N Группа: Кто попало

    Spritz 28 июня 2008 г. 15:28, спустя 1 час 1 минуту 2 секунды

    adw0rd, это не смешно, это ты сделал?
    ок, если бы там не было картинки, а был бы html код, то ты можешь мне сказать как его обрезать, чтобы я навсегда запомнил?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 28 июня 2008 г. 15:52, спустя 24 минуты 42 секунды

    XoxMa™, нет, не я сделал :)

    Самое простое для тебя: file_get_contents('ссылка'), а потом распарсить той же регуляркой, немного поправишь и все :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни

Пожалуйста, авторизуйтесь, чтобы написать комментарий!