login  Naam:   Wachtwoord: 
Registreer je!
 Forum

gebruikersnaam vervangen (Opgelost)

Offline W0etah - 17/04/2009 22:35
Avatar van W0etahPHP beginner Goeiedag,

op een forum waar ik af en toe aan werk wou ik een kleine functie inbouwen, deze functie zou in elk bericht waar een gebruikersnaam getypt word, deze gebruikersnaam moeten vervangen door een link naar het profiel van dit lid.

Op zich werkt dit allemaal perfect, maar de website gaat heel traag sinds ik de functie erin heb gebouwd.

Dit is de functie, er komt dus een hele post binnen en dan gaat hij door alle namen in de database en vervangt hij ze.
  1. function controleerOpGebruikersnamen($str) {
  2. $output = $str;
  3.  
  4. $dbc = getDBConnection();
  5.  
  6. $sql = "SELECT gebruikersnaam FROM leden";
  7. if($result = $dbc->query($sql)) {
  8. while($row = $result->fetch_object()) {
  9. $output = preg_replace("/".$row->gebruikersnaam."/", "<a href='/profiel/".$row->gebruikersnaam.".html'>".getGebruikersnaam($row->gebruikersnaam, true)."</a>", $output);
  10. }
  11. }
  12.  
  13. $dbc->close();
  14.  
  15. return $output;
  16. }


Zou ik dit op een betere manier kunnen doen?

4 antwoorden

Gesponsorde links
Offline marten - 17/04/2009 22:38
Avatar van marten Beheerder Nou je weet de gebruikersnaam al. Deze zou ik zeker proberen in de query te verwerken en dan een LIMIT 1 meesturen.

Nu worden alle leden opgehaald.
Offline W0etah - 17/04/2009 22:41
Avatar van W0etah PHP beginner Ik weet niet welke gebruikersnamen in een post staan, dus ik moet wel door alle namen gaan om de juiste te vinden.

Er komt gewoon 1 lange string binnen.
Offline marten - 17/04/2009 23:14
Avatar van marten Beheerder Wat je verder even zou kunnen testen is of str_replace sneller is. Makkelijker is de gebruikers 'leren' om een opmaak te gebruiken voor users --> [user=W0etah] bijvoorbeeld. Dan heb je iets meer controle erover.
Offline W0etah - 17/04/2009 23:18
Avatar van W0etah PHP beginner str_replace is op het eerste zicht niet echt sneller.

En ik denk dat je voorstel om een tag te maken voor users nog het beste zal zijn.

Bedankt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.169s