Ik onderhoud een website waar een hele lange lijst met veelgestelde vragen (FAQs) staat. Nu worden de vragen (bovenaan de pagina in een ordered list) en de antwoorden (onder de list) nog apart en handmatig bijgehouden, maar dit is erg onhandig.
Nu dacht ik dat de pagina makkelijker te onderhouden zou zijn, als de anchors bv. automatisch worden gegenereerd en je als beheerder vraag en antwoord bij elkaar kunt zien (in plaats van dat er 5 schermen scrollen tussen zitten).
Hiervoor heb ik een functie nodig die de "bulletpoints" (hoe, waarom en wanneer) verwerkt. Aangenomen dat $text "[hoe?]wat jou het beste lijkt[waarom?]omdat het kan[wanneer]elke dag" is, dacht ik hieraan:
Zoals je ziet is mijn $pattern wat zielig. Mijn regex skills zijn niet genoeg om $text te splitten in de array zoals ik hem verder wil verwerken. Welke regex koning kan mij helpen?
Nu dacht ik dat de pagina makkelijker te onderhouden zou zijn, als de anchors bv. automatisch worden gegenereerd en je als beheerder vraag en antwoord bij elkaar kunt zien (in plaats van dat er 5 schermen scrollen tussen zitten).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| // Ik wil nu dit format: [faq] [hoe?]wat jou het beste lijkt [waarom?]omdat het kan [wanneer]elke dag [/faq] // omzetten in: <ul> <li><a href="#answer-1">hoe?</a></li> <li><a href="#answer-2">waarom?</a></li> <li><a href="#answer-3">wanneer?</a></li> </ul> <a name="answer-1">wat jou het beste lijkt</a><br> <a name="answer-2">omdat het kan</a><br> <a name="answer-3">elke dag</a><br> |
Hiervoor heb ik een functie nodig die de "bulletpoints" (hoe, waarom en wanneer) verwerkt. Aangenomen dat $text "[hoe?]wat jou het beste lijkt[waarom?]omdat het kan[wanneer]elke dag" is, dacht ik hieraan:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| function oml_faq_split_items($text) { $pattern = '/\[\*\]/'; $items = preg_split($pattern, $text); $i = 1; foreach ($items as $question => $answer) { $i++; $section_1.= '<li><a href="#answer-'. $i .'">'. $question .'</a>'; $section_2.= '<a name="answer-'. $i .'"><p>'. $answer .'<p>'; } $output = '<ul>'. $section_1 .'</ul>'; $output.= $section_2; return $output; |
Zoals je ziet is mijn $pattern wat zielig. Mijn regex skills zijn niet genoeg om $text te splitten in de array zoals ik hem verder wil verwerken. Welke regex koning kan mij helpen?