Witam Wszystkich,

Jestem na etapie pisania dość dużej aplikacji obiektowej do wyszukiwania informacji w internecie z stron internetowych. Niestety poległem na instrukcji preg_match_all i tak jak działa mi w większości przypadków to niestety pomija niektóre informację. W ramach wyjaśnienia używam takiej instrukcji :

  1. preg_match_all("|<div class=\"arM\">.*\n<a href=\"(.*)\"class=\"LinkBB\">(.*)</a><br/>.*\n</div>.*\n<div class=\"arS\">.*\n[.*\n]{0,}</div>.*\n<div>.*\n</td>.*\n<td class=\"arI\">.*\n<div class=\"arO\"> <strong>.*\nZ.* (.*).*\n</strong>|U", $this->otworz(), $this->pm, PREG_PATTERN_ORDER);


i działa ona w takich przypadkach:

  1. <div class="arM">
  2. <a href="http://www.strona.pl/jakislink"class="LinkBB">Informację</a><br/>
  3. </div>
  4. <div class="arS"> informację o tym i o tamtym
  5. </div>
  6. <div>
  7. </td>
  8. <td class="arI">
  9. <div class="arO"> <strong>
  10. ZFS DNL1202


Natomiast jest problem kiedy:


  1. <div class="arM">
  2. <a href="http://www.strona.pl/jakislink"class="LinkBB">Informację</a><br/>
  3. </div>
  4. <div class="arS"> informację o tym i o tamtym
  5. Informacja w nowej linii
  6. Jeszcze jedna w nowej linii
  7. </div>
  8. <div>
  9. </td>
  10. <td class="arI">
  11. <div class="arO"> <strong>
  12. ZFS DNL1202


Zawsze wydawało mi się że wiele linii obsłuży mi ten wycinek - .*\n[.*\n]{0,} , jednak chyba się myliłem. Bardzo proszę o pomoc, będę wdzięczny