Hallo,

Ik probeer in de reacties te maken, dat mensen anderen kunnen taggen doormiddel van @, maar ik kom er niet helemaal uit.
Dit is wat ik nu heb, maar veroorzaakt een wit pagina.


					$zoektag = preg_replace('/(?<=^|\s)@(\w+).*$/', '$1', $reactie['reactie']);
					$namen = $connect->query("SELECT * FROM gebruikers WHERE gebruiker = '".$zoektag."'");
					$tags = explode(",", $namen);
					
					foreach($tags as $naam){
						if(strpos($naam, '@' !== false){
							$name = str_replace("@","", $naam);
							//<a href="" id="gebruikerbanner">'.$naam.'</a> <--- De tags moeten veraderd worden in dit.
						}
					}


$reactie['reactie'] is de variable die ik gebruik om de reacties weer te geven, dus alle @(gebruiker) moet daarin veranderd worden.
Error reporting aanzetten.

Op regel 6 mist een ).
- Op regel 6 mist het eindhaakje van je strpos-functie
- Als ik het goed heb moet je zoiets maken met reguliere expressies zoals met preg_match of preg_replace volgensmij.
Ik heb een ')' toegevoegd op regel 6 en de pagina is zichtbaar, maar het lukt mij niet om alle woorden met @ te vervangen.

Ik wil eerst controleren of de gebruiker bestaat, en dan pas @gebruiker omzetten naar een link of <span>, als dat niet het geval is, moet het gewoon @gebruiker blijven of verdwijnen uit de reacties.

op zich zou het moeten kunnen met str_replace(), maar dan zit ik er mee hoe ik uit een string alles kan krijgen waar een @ voor staat. Of alles waar @ voor staat in een array stoppen en dan controleren of het overeen komt.
Dus je wilt waarschijnlijk iets met preg_replace_callback() doen.

preg_replace_callback('~(@[\w]+)~', 'jefunctie', $input);

Waar jefunctie() de replace teruggeeft.

Reageren