Extract span content fi match

时间:2015-11-12 11:57:42

标签: php regex dom

I'm fetching a website with this code:

$dom = new DOMDocument('1.0', 'utf-8');
$dom->loadHTML($output);
$dom->preserveWhiteSpace = false;

$tables = $dom->getElementsByTagName('div');

foreach($tables as $table)
{
  $div = $table->getAttribute('class');

  if( $div == "ppfundove" )
  {
    echo $dom->saveHTML($table)."<br />";
  }

}

and this is the return html.

<div class="ppfundove">
<div style="float:right;">
  <div style="width:120px;height:180px;margin:0 0 5px 5px;border:solid 0px black;">
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- MdP Linhas --><ins class="adsbygoogle" style="display:inline-block;width:120px;height:90px" data-ad-client="ca-pub-0625882597391969" data-ad-slot="6701994172"></ins>
    <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- MdP Linhas --><ins class="adsbygoogle" style="display:inline-block;width:120px;height:90px" data-ad-client="ca-pub-0625882597391969" data-ad-slot="6701994172"></ins>
    <script>
      (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
  </div>
</div>
<div class="ppindent">
  <div>Distrito: <span class="ppredib">Porto</span>
  </div>
  <div>Unid. Estat. (NUTS III): <span class="ppredib">Tâmega</span>
  </div>
  <div>Província: <span class="ppredib">Douro Litoral</span>
  </div>
  <div>Freguesias: <span class="ppredib">Bonfim, Campanhã, Paranhos, Ramalde, União das Freguesias de Aldoar, Foz do Douro e Nevogilde, União das Freguesias de Cedofeita, Santo Ildefonso, Sé, Miragaia, São Nicolau e Vitória, União das Freguesias de Lordelo do Ouro e Massarelos.</span>    </div>
</div>
<div class="clr"></div>
</div>
<br />
<br />

I need to get:

Bonfim, Campanhã, Paranhos, Ramalde, União das Freguesias de Aldoar, Foz do Douro e Nevogilde, União das Freguesias de Cedofeita, Santo Ildefonso, Sé, Miragaia, São Nicolau e Vitória, União das Freguesias de Lordelo do Ouro e Massarelos.

If was preceded by "Freguesias: "

How can i do that using DOMDocument class?

1 个答案:

答案 0 :(得分:1)

$con ='<div>Freguesias: <span class="ppredib">Bonfim, Campanhã, Paranhos, Ramalde, União das Freguesias de Aldoar, Foz do Douro e Nevogilde, União das Freguesias de Cedofeita, Santo Ildefonso, Sé, Miragaia, São Nicolau e Vitória, União das Freguesias de Lordelo do Ouro e Massarelos.</span>    </div>';

preg_match_all('/<div>Freguesias:\s*<span class="ppredib">(.*?)<\/span>\s*<\/div>/i', $con, $array);
print_r($array[1][0]);

OR

preg_match('/<div>Freguesias:\s*<span class="ppredib">(.*?)<\/span>\s*<\/div>/i', $con, $array);
print_r($array[1]);