Ik heb onderstaand script in elkaar gedraaid, wat op een pagina woorden zoekt en vervangt door uitleg (<abbr>). Dit moet uiteindelijk een flinke lijst worden, maar dit is nog om te testen.
Dit werkt goed, maar er zijn 2 dingen die ik graag zou willen verbeteren:
Iemand een tip om me de goede richting op te sturen?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?php $message = "123test saya Saya hamon kassiki tsuba"; $begrip = array( "saya", "hamon", "kassiki", "tsuba" ); $definitie = array( "<span style=\"border-bottom: 1px dotted;\"><abbr title=\"Schede\">saya</abbr></span>", "<span style=\"border-bottom: 1px dotted;\"><abbr title=\"Patroon van de overvang van gehard staal naar zachter staal op de zijde van het blad\">hamon</abbr></span>", "<span style=\"border-bottom: 1px dotted;\"><abbr title=\"Punt van de katana\">kassiki</abbr></span>", "<span style=\"border-bottom: 1px dotted;\"><abbr title=\"Scheidt het handvat van het blad en voorkomt dat het zwaard door de hand glijdt en men met het hand langs het blad glijdt\">tsuba</abbr></span>", ); $message = str_ireplace($begrip, $definitie, $message); echo $message; ?> |
Dit werkt goed, maar er zijn 2 dingen die ik graag zou willen verbeteren:
- Bij elke definitie in de array heb ik nu de <span> en <abbr>-tags eromheen staan. Het lijkt me dat dit gemakkelijker kan (waardoor het eenvoudiger uitbreiden wordt).
- Als het begrip aan het begin van een zin staat, heeft het hoogstwaarschijnlijk een hoofdletter. Ik heb de hoofdlettergevoeligheid al omzeild door ireplace te gebruiken, maar in de vervanging heeft alles kleine letters. Liefst zou ik de exacte input gebruiken (dus variabele $begrip), maar die wordt dan weer door de replacement gehaald. Hoe kan ik dat voorkomen, of op een andere manier zorgen dat de exacte input terugkomt?
Iemand een tip om me de goede richting op te sturen?
Tjolk is lekker. overal en altijd.