login  Naam:   Wachtwoord: 
Registreer je!
 Forum

woorden vervangen (Opgelost)

Offline Stefan14 - 20/04/2008 17:12
Avatar van Stefan14PHP gevorderde Ik heb een script dat teksten doorloopt op bepaalde woorden en deze moet hij vervangen door een ander woord of link, dit gebeurt a.d.h.v. een tabel in een database.

Ik heb nu alleen een probleem, het werkt prima, maar eigenlijk iets te goed, ik wil dat alleen de woorden vervangen worden, maar als een woord nu onderdeel is van een ander woord wordt dit ook vervangen, opzich logisch, maar hoe voorkom ik dit?

script:
  1. <?php
  2. function link_replace ($tekst)
  3. {
  4. $query = "SELECT * FROM link_replace";
  5. $result = mysql_query($query) or die (mysql_error());
  6.  
  7. if (mysql_num_rows($result))
  8. {
  9. while ($row = mysql_fetch_array($result))
  10. {
  11. //arrays maken van de woorden en vervangingen
  12. $words[] = $row['woord'];
  13. $replace[] = $row['vervanging'];
  14. }
  15.  
  16. //twee arrays combineren tot woorden en vervangingen samen
  17. $array = array_combine($words, $replace);
  18.  
  19. //tekst doorlopen op woorden die vervangen moeten worden
  20. $newtekst = $tekst;
  21. foreach ($array as $word => $replace)
  22. {
  23. $newtekst = str_replace($word, $replace, $newtekst);
  24. }
  25. return $newtekst;
  26. }
  27. }
  28.  
  29. $tekst = 'Dit script vervangt de woorden door een vervangend woord of link';
  30.  
  31. echo 'Originele tekst:<br />'.$tekst;
  32. echo '<br /><br />';
  33. echo 'Aangepaste tekst:<br />'.link_replace($tekst);
  34. ?>


Als test heb ik het volgende in de db staan:
de wordt het
woorden wordt woord

Maar ik krijg dan dus wel dit op het scherm
  1. Originele tekst:
  2. Dit script vervangt de woorden door een vervangend woord of link
  3.  
  4. Aangepaste tekst:
  5. Dit script vervangt het woorhetn door een vervangend woord of link


Dat is niet echt de bedoeling, hoe zorg ik ervoor dat er alleen hele woorden vervangen worden?

Ik heb begrepen dat dit dan met een preg_replace zou moeten met een pattern.
Probleem is alleen dat ik die patterns niet kan schrijven.
Misschien dat iemand die dit wel kan voor mij wil doen?

2 antwoorden

Gesponsorde links
Offline vinTage - 20/04/2008 17:32
Avatar van vinTage Nieuw lid Mss spaties voor en na het woord gebruiken?
  1. <?php
  2. $text = 'in deze zin staat een woord met spaties en een zonder =>woord<= spaties';
  3. $text = str_replace(" woord ", " lala ", $text);
  4. echo $text;
  5. ?>
Offline Stefan14 - 20/04/2008 17:36
Avatar van Stefan14 PHP gevorderde De oplossing kan zo simpel zijn!

Je bent geweldig Vintage, kan ik weer verder!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.245s