tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
285
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DerKleene1 DerKleene1 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    6
    Hallo Gemeinde,

    ich habe ein kleines Problem, wo ich momentan nicht auf eine Lösung komme.
    Ich habe folgenden Code, der bewirken soll, das wenn in einem Beitrag ein
    Username geschrieben wird, das er den Usernamen mit einem Link zum Profile ersetzen soll.
    PHP-Code:
    $result_name_link=$db->query("SELECT userid,username FROM bb".$n."_users ORDER BY userid");
    $search_name_link = array();
    $replace_name_link = array();
    while(
    $row_name_link=$db->fetch_array($result_name_link)) {
        
    $search_name_link[] = stripslashes($row_name_link[username]);
         
    $replace_name_link[] = "<a href=\"profile.php?userid=" .$row_name_link[userid]. "\">" .stripslashes($row_name_link[username]). "</a>";
    }
    $posts['message'] = str_ireplace($search_name_link,$replace_name_link,$posts['message']); 
    das funktioniert auch eigentlich super.
    Nur leider, als Bsp. nun, ersetzt er bei dem Wort Tanja, auch das anja in Tanja,
    wenn es einen Usernamen Anja gibt.
    Kann mir einer helfen, das er nur das exakte gefundene Wort ersetzt?
    Vielen Dank schon mal im vorraus.

    Gruß DerKleene (Heiko)
     

  2. #2
    Avatar von Alex_T
    Alex_T Alex_T ist offline Mitglied Brokat
    Registriert seit
    Jul 2009
    Beiträge
    311
    Grüße,

    da bedarf es anscheinend noch eines Delimiters.
    Probier mal folgendes aus:

    PHP-Code:
    $search_name_link[] = "%".stripslashes($row_name_link[username])."%"
    Wenn das überhaupt geht...bin leider schon ne Weile raus aus PHP (man da wirds in den Semesterferien mal wieder zeit )
     
    Mfg, Alex

    “The function of good software is to make the complex appear to be simple.” (Grady Booch)
    “First, solve the problem. Then, write the code.” (John Johnson)

  3. #3
    DerKleene1 DerKleene1 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    6
    Hallo,

    danke für Deine Antwort, nur leider findet er nun keine Usernamen mehr,
    oder besser gesagt ersetzt er nun gar nichts mehr.

    (ich habe auch schon einige Zeit nichts mehr in PHP gemacht, was wohl ein Nachteil ist momentan)
     

  4. #4
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    nimm preg_replace und setz Leerzeichen,Textanfang und andere Satzzeichen als mögliche Zeichen davor und dahinter.

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  5. #5
    DerKleene1 DerKleene1 ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    6
    Danke hat mir sehr geholfen.
    Klappt alles wie es soll mit preg_replace.
     

Ähnliche Themen

  1. Wort auf der gesamten Seite ersetzen?
    Von huti im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 05.11.11, 09:49
  2. Antworten: 4
    Letzter Beitrag: 25.10.11, 23:32
  3. erste Wort im Text ersetzen!
    Von hwcsteffen im Forum PHP
    Antworten: 3
    Letzter Beitrag: 17.01.08, 13:31
  4. Antworten: 42
    Letzter Beitrag: 27.09.06, 15:23
  5. [perl] file durchsuchen und bestimmtes wort ersetzen
    Von alie im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 1
    Letzter Beitrag: 19.04.02, 12:04