Ik ben bezig met een spinnenweb-tool op mijn website. Ik vroeg me af hoe ik dit het beste kon doen.
In de nieuwsberichten die ik schrijf moeten woorden in deze content vervangen worden met links uit de volgende tabellen: artikels, auteur, cat, info en pakketten.
Ik zat er aan te denken om elke tabel met een aparte while-loop te doorzoeken om te kijken of dit woord zich in de titel bevindt. Voor het gemak heb ik in elke tabel de titels "titel" genoemd ipv "naam" of dergelijke..
Stel jij hebt het woord 'voorbeeld' in je tabel staan, wil je dan dat als een user 'Is dit een voorbeeld?' het woord voorbeeld vervangt?
edit: Als dat het geval is, kom je een heel eind met een foreach. Houdt er wel rekening mee dat door array's heen loopen (foreach is een loop, net als while) je script niet sneller maakt, dat soort dingen wil je beperkt houden. Je zou er over kunnen denken bij het opslaan een 'clean' text op te slaan, en 1 bewerkte (clean wil je houden voor makkelijk in de toekomst)
edit2: Beter zou zijn als je een regex gebruikt. Stel jij hebt het woord 'voor' en ik typ 'voorbeeld', wil je niet dat dat woord wordt verziekt.
voorbeeldje:
Zo even uit mn hoofd, kan zijn dat je even moet tweaken, maar nu krijg je alleen woorden die beginnen/gevolgd worden door een spatie, komma of punt. Is uiteraard naar smaak aan te passen
Bedankt voor uw reactie met uitleg. Ik zat er zelf ook aan te denken om het door middel van een foreach te doen. Ik zal de situatie even wat duidelijker uitleggen:
Ik ben bezig met een website waar nieuwsartikelen op komen te staan. Ook bieden we pakketten aan (welke we regelmatig promoten in een nieuwsbericht uiteraard).
De database bestaat uit de volgende tabellen (die gebruikt moeten worden voor het spinnenweb): artikels, auteur, cat, info en pakketten
In de tabel "artikels" komen de nieuwsartikelen uiteraard. Ik zat er om te denken om als handigheid voor het spinnenweb bij elke tabel een veld te maken met link_woorden. Hier komen de woorden in te staan waar dit artikel / pakket e.d. gelinkt aan moet worden. Om dubbele data te vermijden is het misschien handig (?) om hier de woorden te onderscheiden door middel van een komma: voorbeeld, voor, beeld, artikel e.d.
Stel ik post een artikel met in de tekst bijvoorbeeld het woordje "voorbeeld". Dan wil ik dus hebben dat hij alle tabellen na gaat kijken of er ergens het woordje voorbeeld in de link_woorden staat. Misschien kan dit door middel van een foreach omdat in elke tabel de veld link_woorden hetzelfde gaat worden?
Als output van de functie moet het dus zo zijn dat hij het woordje voorbeeld gaat vervangen met <a href="http://www.mijnsite.nl/pagina/voorbeeld" title="Voorbeeld">voorbeeld</a>
Het wordt dus niet zo opgeslagen in de database, maar wordt met de te schrijven functie dus gemanipuleerd zodat de a href er in staat.
Ik hoop dat u het een beetje kan volgen allemaal?
Alvast bedankt
Zou ik het niet het beste zo kunnen doen, dat hij bij het opslaan van de artikel gaat kijken naar de tekst, de database gaat doorzoeken naar de woorden, deze gaat vervangen door de link etc. en de tekst zo opslaat in de database?
Zo is het tijdens het opslaan traag, maar heeft de bezoeker hier dus geen last van
Je kunt het overal doen waar je wilt, zolang je het doet bij het opslaan, merkt je bezoeker er niets van. En 1 tabel hoeft niet, je kunt zoveel doen als je wilt.
Nee oke, dus gewoon een functie maken en die bij het opslaan oproepen over de content?
Ik denk dat het op die manier het makkelijkst is, sowieso merkt de bezoeker hier dan niets van
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.