String ontleden via php
Ik wil graag uit een string verschillende informatie halen:
Dit is de string:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php $string = ' <p>Als u graag mee bent met de laatste nieuwe trends in mode en accessoires, koop dan <b>Horloge Dames Kenneth Cole IKC2728 (38 mm)</b> tegen de beste prijs.</p>
<ul>
<li>Type garantie: Fabrieksgarantie</li>
<li>Doosje: Doosje van het merk inbegrepen</li>
<li>Geslacht: Vrouwen</li>
<li>Diameter van de doos: 38 mm</li>
<li>Kleur van de plaat: Brons</li>
<li>Inserties: Kristal</li>
<li>Materiaal van horloge: Leer</li>
<li>Beweging: Kwarts</li>
<li>Soort slot: Gesp</li>
</ul>'; ?>
<ul>
<li>Type garantie: Fabrieksgarantie</li>
<li>Doosje: Doosje van het merk inbegrepen</li>
<li>Geslacht: Vrouwen</li>
<li>Diameter van de doos: 38 mm</li>
<li>Kleur van de plaat: Brons</li>
<li>Inserties: Kristal</li>
<li>Materiaal van horloge: Leer</li>
<li>Beweging: Kwarts</li>
<li>Soort slot: Gesp</li>
</ul>'; ?>
Nu heb ik nodig uit deze code: Brons, Leer. Dus alles na: Kleur van de plaat: en alles na: Materiaal van horloge:
Via explode krijg ik wel alles achter een bepaalde karakter maar dan stopt die niet na datgene wat ik nodig heb.
Graag advies hoe ik deze 2 variablen het beste krijg te pakken.
Gewijzigd op 01/02/2017 14:28:59 door Furio Scripting
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if(preg_match('#.*\<li\>Kleur van de plaat: (?P<kleur>[^<]+)\<.*\<li\>Materiaal van horloge: (?P<materiaal>[^<]+)\<#m', $string, $aMatches)) {
print_r($aMatches);
}
?>
if(preg_match('#.*\<li\>Kleur van de plaat: (?P<kleur>[^<]+)\<.*\<li\>Materiaal van horloge: (?P<materiaal>[^<]+)\<#m', $string, $aMatches)) {
print_r($aMatches);
}
?>
Bedankt Ivo, helaas krijg ik nog geen output te zien als ik de code overneem.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php $string = ' <p>Als u graag mee bent met de laatste nieuwe trends in mode en accessoires, koop dan <b>Horloge Dames Kenneth Cole IKC2728 (38 mm)</b> tegen de beste prijs.</p>
<ul>
<li>Type garantie: Fabrieksgarantie</li>
<li>Doosje: Doosje van het merk inbegrepen</li>
<li>Geslacht: Vrouwen</li>
<li>Diameter van de doos: 38 mm</li>
<li>Kleur van de plaat: Brons</li>
<li>Inserties: Kristal</li>
<li>Materiaal van horloge: Leer</li>
<li>Beweging: Kwarts</li>
<li>Soort slot: Gesp</li>
</ul>';
if(preg_match('#.*Kleur van de plaat: (?P<kleur>[^<]+).*Materiaal van horloge: (?P<materiaal>[^<]+)#s', $string, $aMatches)) {
print_r($aMatches['kleur']);
print_r($aMatches['materiaal']);
}
?>
<ul>
<li>Type garantie: Fabrieksgarantie</li>
<li>Doosje: Doosje van het merk inbegrepen</li>
<li>Geslacht: Vrouwen</li>
<li>Diameter van de doos: 38 mm</li>
<li>Kleur van de plaat: Brons</li>
<li>Inserties: Kristal</li>
<li>Materiaal van horloge: Leer</li>
<li>Beweging: Kwarts</li>
<li>Soort slot: Gesp</li>
</ul>';
if(preg_match('#.*Kleur van de plaat: (?P<kleur>[^<]+).*Materiaal van horloge: (?P<materiaal>[^<]+)#s', $string, $aMatches)) {
print_r($aMatches['kleur']);
print_r($aMatches['materiaal']);
}
?>
Toevoeging op 01/02/2017 15:24:13:
is het trouwens het materiaal van het horloge, of van de band?
Bedankt voor de hulp!