preg_match

rernanded

Erfahrenes Mitglied
Hi
wie kann es am besten anstellen nur
1.) 23.02.2014
2.) Klicken Sie hier!
3.) Gucken Sie mal!

aus folgendem Gesamttext(=html-Code)(s.u.) wiederzugeben? Ich denke mal preg_match ist der Ansatz!?



MONI

HTML:
Am morgigen Samstag, dem 24. Januar feiert der Präsident der Handwerkskammer Oberhausen seinen 70. Geburtstag.
<time itemprop="datePublished" datetime="2014-02-23">23.02.2014</time><br />
<a href="wunderlink.htm">Klicken Sie hier!</a>
<div id="pressrelease" itemscope itemtype="http://schema.de/Article"><!-- Header and sub header of the press release --><div id="headings"><div id="headings-container"><h1 itemprop="headline">Engagement im Interesse der Betriebe</h1><h2 itemprop="alternativeHeadline">Kammerpräsident Heinrich Gerhard wird 70 Jahre alt</h2></div></div><!-- Content of the press release --><div id="content"><span class="pr_header_city_date">(PR-TEXT) (<span itemprop="contentLocation">Oberhausen</span>, <time itemprop="datePublished" datetime="2016-01-23">23.01.2016</time>)</span><span itemprop="article">
Am morgigen Samstag, dem 29. Januar feiert der Präsident der Handwerkskammer Oberhausen seinen 70. Geburtstag. „Mit Heinrich Gerhard steht ein Unternehmer an der Spitze unserer Handwerksorganisation, der sich durch seine zupackende Art sowie durch sein soziales Verantwortungsgefühl und großes Engagement auszeichnet. Er steht damit für die Werte, die das Handwerk seit je stark gemacht haben“.<br /><br />
Der Vollversammlung der Kammer gehört er seit 1994 an. 1999 wurde er in den Vorstand und 2006 zum Vizepräsidenten gewählt.<br /><br />
<div id="wow">Gucken Sie mal!</div>Der Bauunternehmer aus Essen war im Juni 2009 an die Spitze des niederrheinischen Handwerks sowie zum Vizepräsidenten der Arbeitsgemeinschaft der NRW- Handwerkskammern gewählt worden.
<img src="wunderlink.jpg" border="0">Der Vollversammlung der Kammer gehört er seit 1994 an. 1999 wurde er in den Vorstand und 2006 zum Vizepräsidenten gewählt.<br />
 
Zuletzt bearbeitet:
Wenn es valides XML/HTML ist, könnte man auch mit DOMDocument + XPath machen.

Ah, ist HTML5, dann wohl eher doch preg_match...

PHP:
<?php
$html = <<< EOT
Am morgigen Samstag, dem 24. Januar feiert der Präsident der Handwerkskammer Oberhausen seinen 70. Geburtstag.
<time itemprop="datePublished" datetime="2014-02-23">23.02.2014</time><br />
<a href="wunderlink.htm">Klicken Sie hier!</a>
<div id="pressrelease" itemscope itemtype="http://schema.de/Article"><!-- Header and sub header of the press release --><div id="headings"><div id="headings-container"><h1 itemprop="headline">Engagement im Interesse der Betriebe</h1><h2 itemprop="alternativeHeadline">Kammerpräsident Heinrich Gerhard wird 70 Jahre alt</h2></div></div><!-- Content of the press release --><div id="content"><span class="pr_header_city_date">(PR-TEXT) (<span itemprop="contentLocation">Oberhausen</span>, <time itemprop="datePublished" datetime="2016-01-23">23.01.2016</time>)</span><span itemprop="article">
Am morgigen Samstag, dem 29. Januar feiert der Präsident der Handwerkskammer Oberhausen seinen 70. Geburtstag. „Mit Heinrich Gerhard steht ein Unternehmer an der Spitze unserer Handwerksorganisation, der sich durch seine zupackende Art sowie durch sein soziales Verantwortungsgefühl und großes Engagement auszeichnet. Er steht damit für die Werte, die das Handwerk seit je stark gemacht haben“.<br /><br />
Der Vollversammlung der Kammer gehört er seit 1994 an. 1999 wurde er in den Vorstand und 2006 zum Vizepräsidenten gewählt.<br /><br />
<div id="wow">Gucken Sie mal!</div>Der Bauunternehmer aus Essen war im Juni 2009 an die Spitze des niederrheinischen Handwerks sowie zum Vizepräsidenten der Arbeitsgemeinschaft der NRW- Handwerkskammern gewählt worden.
<img src="wunderlink.jpg" border="0">Der Vollversammlung der Kammer gehört er seit 1994 an. 1999 wurde er in den Vorstand und 2006 zum Vizepräsidenten gewählt.<br />
EOT;

$matches = array();
if (preg_match('/<time.*>([^<]+?)<\/time>/', $html, $matches)) {
    var_dump($matches[1]);
}

if (preg_match('/<a href="[^"]+">([^<]+?)<\/a>/', $html, $matches)) {
    var_dump($matches[1]);
}

if (preg_match('/<div id="wow">([^<]+?)<\/div>/', $html, $matches)) {
    var_dump($matches[1]);
}

Code:
D:\web\test\preg.php:15:
string(10) "23.02.2014"
D:\web\test\preg.php:19:
string(17) "Klicken Sie hier!"
D:\web\test\preg.php:23:
string(15) "Gucken Sie mal!"
 
Zuletzt bearbeitet:
@saftmeister Toll, funktioniert super. Danke. Zusatzfrage:
Mein herauszufilternder Inhalt enthält ev. html-code, hier ein <br />.
<div id="wow">Gucken Sie mal! Hier gibts<br />was zum Gucken. Man ist das toll.</div>
Dann gehts nicht. Wie kann es anstellen das nur - Gucken Sie mal! Hier gibts was zum Gucken. Man ist das toll. - angezeigt wird?
Im Moment setz ich vorher ein preg_replace ein. Dazu muß ich aber jedes zu ersetzende Zeichen auch vorher kennen.
MONI
PHP:
if (preg_match('/<div id="wow">([^<]+?)<\/div>/', $html, $matches)) {
    var_dump($matches[1]);
}
 
@saftmeister Danke. strip_tags() hatte ich auch schon probiert, geht aber nicht.
Und mein neuer Versuch auch nicht.
MONI

Mein neuer Versuch:
PHP:
if (preg_match('/<div id="wow">([^<]+?)<\/div>/', $html, $matches)) {
$wow = strip_tags($matches[1]);
  var_dump($wow);
}
 
PHP:
<?php
$html = <<< EOT
Am morgigen Samstag, dem 24. Januar feiert der Präsident der Handwerkskammer Oberhausen seinen 70. Geburtstag.
<time itemprop="datePublished" datetime="2014-02-23">23.02.2014</time><br />
<a href="wunderlink.htm">Klicken Sie hier!</a>
<div id="pressrelease" itemscope itemtype="http://schema.de/Article"><!-- Header and sub header of the press release --><div id="headings"><div id="headings-container"><h1 itemprop="headline">Engagement im Interesse der Betriebe</h1><h2 itemprop="alternativeHeadline">Kammerpräsident Heinrich Gerhard wird 70 Jahre alt</h2></div></div><!-- Content of the press release --><div id="content"><span class="pr_header_city_date">(PR-TEXT) (<span itemprop="contentLocation">Oberhausen</span>, <time itemprop="datePublished" datetime="2016-01-23">23.01.2016</time>)</span><span itemprop="article">
Am morgigen Samstag, dem 29. Januar feiert der Präsident der Handwerkskammer Oberhausen seinen 70. Geburtstag. „Mit Heinrich Gerhard steht ein Unternehmer an der Spitze unserer Handwerksorganisation, der sich durch seine zupackende Art sowie durch sein soziales Verantwortungsgefühl und großes Engagement auszeichnet. Er steht damit für die Werte, die das Handwerk seit je stark gemacht haben“.<br /><br />
Der Vollversammlung der Kammer gehört er seit 1994 an. 1999 wurde er in den Vorstand und 2006 zum Vizepräsidenten gewählt.<br /><br />
<div id="wow">Gucken Sie mal! Hier gibts<br />was zum Gucken. Man ist das toll.</div>Der Bauunternehmer aus Essen war im Juni 2009 an die Spitze des niederrheinischen Handwerks sowie zum Vizepräsidenten der Arbeitsgemeinschaft der NRW- Handwerkskammern gewählt worden.
<img src="wunderlink.jpg" border="0">Der Vollversammlung der Kammer gehört er seit 1994 an. 1999 wurde er in den Vorstand und 2006 zum Vizepräsidenten gewählt.<br />
EOT;

$matches = array();
if (preg_match('/<time.*>([^<]+?)<\/time>/', $html, $matches)) {
    var_dump($matches[1]);
}

if (preg_match('/<a href="[^"]+">([^<]+?)<\/a>/', $html, $matches)) {
    var_dump($matches[1]);
}

if (preg_match('/<div id="wow">(.+?)<\/div>/', $html, $matches)) {
    var_dump(strip_tags($matches[1]));
}
 

Neue Beiträge

Zurück