Выберите классы с тем же именем в PHP, используя Simple_Html_Dom - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь выбрать несколько классов с одним и тем же именем класса в PHP.(например: вся информация из всех классов с именем = заголовок панели) Но это не будет работать.Текущая ошибка говорит:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2147483672 bytes) in /simple_html_dom.php on line 136

Я перепробовал много библиотек синтаксического анализа, ни одна из них не работала для меня.Также я попытался очистить память Dom с помощью $html->clear, чтобы удалить ошибку памяти, но она не будет работать.

Вот HTML-код из https://display.edubs.ch/gl1

<body>
<div class="container">

  <h1>Gymnasium Leonhard <small><a data-turbolinks="false" href="https://display.edubs.ch/gl1/display"><i class="fa fa-desktop"></i></a></small></h1>

  <h2>Stellvertretungen</h2>

      <h3>Heute:</h3>

         <div class="panel panel-default">
            <div class="panel-heading">
              <strong>1i Damen: </strong>
              15:55-17:30
              - SpM
            </div>
            <div class="panel-body">
              Ms
            </div>
            <div class="panel-footer">
              Raum: -
            </div>
          </div>
          <div class="panel panel-default">
            <div class="panel-heading">
              <strong>5i: </strong>
              15:55-17:30
              - Mu
            </div>
            <div class="panel-body">
              Arbeitsauftrag im Schulzimmer (gemäss Angaben Hr. Schmied)
            </div>
            <div class="panel-footer">
              Raum: H107, H409, Bandraum
            </div>
          </div>

Вот что япробовал в PHP:

<?php
    include ("simple_html_dom.php");
    $html = file_get_html('https://display.edubs.ch/gl1');

    foreach($html->find('.panel-heading') as $panelheading);
    foreach($html->find('.panel-body') as $panelbody);
    foreach($html->find('.panel-footer') as $panelfooter);

    echo $panelheading, $panelbody, $panelfooter;

    $html->clear
?>

Мне нужна текстовая информация от:

<div class="panel-heading"> <div class="panel-body"> <div class="panel-footer">

Количество классов с этими именами может варьироваться, но мне всегда нужна вся информация от всех классов с этими именами.

Пока я получаю только эту ошибку: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2147483672 bytes) in /simple_html_dom.php on line 136

Пожалуйста, помогите:)

...