Hi,
ich habe die folgenden beiden Strings
auf diese wende ich eine Regexp an und lasse mir die Ergebnisse ausgeben
Jetzt habe ich folgendes Problem beim auslesen der Lieferzeit, wenn denn vorhanden. Lasse ich fest auf die Lieferzeit prüfen, also muss sie angegeben sein
bekomme ich auch das entsprechende Ergebnis
Pattern wird in String 1 gefunden, in 2 nicht - OK.
Will ich die Angabe der Lieferzeit jetzt optional haben
bekomme ich garkein Ergebnis mehr geliefert
lasse ich nach der Lieferzeit folgende Zeichen weg
findet er immerhin noch den Namen und ggf. die Lieferzeit
aber nicht als separates Ergebnis. Kann mir jemand verraten, wie ich es hinbekomme, die Lieferzeit optional und als eigenständiges Suchergebnis finden zu lassen?
Gruss, Christian.
ich habe die folgenden beiden Strings
PHP-Code:
$sub1 = <<<SUB
<DIV class="Produktdetails">
<H2>Testproduktname
<SPAN><I>Lieferzeit 1 bis 5 Tage</I></SPAN>
</H2>
</DIV>
SUB;
$sub2 = <<<SUB
<DIV class="Produktdetails">
<H2 class="testklasse">Testproduktname
</H2>
</DIV>
SUB;
PHP-Code:
$pat = "`.*<DIV.*>.*<H2.*>(.*).*(Lieferzeit){0,1}.*</H2>.*</DIV>.*`siU";
preg_match_all( $pat, $sub1, $mat1 );
preg_match_all( $pat, $sub2, $mat2 );
unset( $mat1[ 0 ] );
unset( $mat2[ 0 ] );
echo '<pre>', htmlspecialchars( print_r( $mat1, 1 ) ), '</pre>';
echo '<pre>', htmlspecialchars( print_r( $mat2, 1 ) ), '</pre>';
PHP-Code:
$pat = "`.*<DIV.*>.*<H2.*>(.*)(<SPAN><I>Lieferzeit 1 bis 5 Tage</I></SPAN>).*</H2>.*</DIV>.*`siU";
Code:
Array
(
[1] => Array
(
[0] => Testproduktname
)
[2] => Array
(
[0] => <SPAN><I>Lieferzeit 1 bis 5 Tage</I></SPAN>
)
)
Array
(
[1] => Array
(
)
[2] => Array
(
)
)
Will ich die Angabe der Lieferzeit jetzt optional haben
PHP-Code:
$pat = "`.*<DIV.*>.*<H2.*>(.*)(<SPAN><I>Lieferzeit 1 bis 5 Tage</I></SPAN>){0,1}.*</H2>.*</DIV>.*`siU";
PHP-Code:
Array
(
[1] => Array
(
[0] =>
)
[2] => Array
(
[0] =>
)
)
Array
(
[1] => Array
(
[0] =>
)
[2] => Array
(
[0] =>
)
)
PHP-Code:
$pat = "`.*<DIV.*>.*<H2.*>(.*)(<SPAN><I>Lieferzeit 1 bis 5 Tage</I></SPAN>){0,1}</H2>.*</DIV>.*`siU";
PHP-Code:
Array
(
[1] => Array
(
[0] => Testproduktname
<SPAN><I>Lieferzeit 1 bis 5 Tage</I></SPAN>
)
[2] => Array
(
[0] =>
)
)
Array
(
[1] => Array
(
[0] => Testproduktname
)
[2] => Array
(
[0] =>
)
)
Gruss, Christian.

Kommentar