String ontleden via php
Goedemiddag,
Ik wil graag uit een string verschillende informatie halen:
Dit is de string:
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.
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
ervanuit gaande dat eers de kleur en daarna het materiaal komt:
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?
Top, het werkt nu! Het is het material van de band maar het staat in de beschrijving als materiaal horloge.
Bedankt voor de hulp!
Bedankt voor de hulp!




