Ubb @ tag functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Justin Gaatjeniksaan

Justin Gaatjeniksaan

03/03/2013 21:37:51
Quote Anchor link
Hey!

Ik wil graag een @gebruikersnaam functie.
Ik had al wat gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
function usertag($text){
    $text1 = str_replace("@".$text."",$text, $text);
    $user = mysql_query("SELECT * FROM leden WHERE naam='".$text1."'");
    if(mysql_num_rows($user) == 0){
        $text=str_replace("@".$text."","@".$text."",$text);
    }else{
        $text=str_replace("@".$text."","<a href='".SITELINK."profiel/".$text."/'>@".$text."</a>",$text);
    }
    return $text;
}

Maar dat werkt niet.
Hij geeft ook geen warning aan.

Ik wil graag het volgende:
Als je @Justin doet en de gebruiker bestaat dan komt er een link bij.
En als je @phphulp doet en de gebruiker bestaat niet dat er dan geen link voor komt.

Alvast bedankt,
Justin
Gewijzigd op 03/03/2013 21:38:34 door Justin Gaatjeniksaan
 
PHP hulp

PHP hulp

29/04/2024 14:53:21
 
Php knipper

php knipper

03/03/2013 22:27:10
Quote Anchor link
meschien omdat je een fout maakt met je woorden
je pakt heel je text

probeer eens explode() op de spaties en zet dat in een foreatch zo krijg je voor ieder woordt de functie ( opgelet voor leestekens ) controleer de woorden op de @ indien ze die hebben controleer je of de gebruiker bestaat. zo ja maak je er een link van
Gewijzigd op 03/03/2013 22:33:48 door php knipper
 
Justin Gaatjeniksaan

Justin Gaatjeniksaan

04/03/2013 20:41:10
Quote Anchor link
Php knipper op 03/03/2013 22:27:10:
meschien omdat je een fout maakt met je woorden
je pakt heel je text

probeer eens explode() op de spaties en zet dat in een foreatch zo krijg je voor ieder woordt de functie ( opgelet voor leestekens ) controleer de woorden op de @ indien ze die hebben controleer je of de gebruiker bestaat. zo ja maak je er een link van

Dankje wel, ik ga het proberen.
 
Eddy E

Eddy E

04/03/2013 20:45:17
Quote Anchor link
Daarbij doet de extra "" niets:

Dus niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
"@".$text.""
?>


Maar gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
'@'.$text
?>


Toevoeging op 04/03/2013 21:09:46:

Probeer dit eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php

    // verkrijg string tussen 2 tags
    function tussen($string, $start, $end)
    {

        $string = " " . $string;
        $ini = strpos($string, $start);
        if($ini == 0)
            return "";
        $ini += strlen($start);
        $len = strpos($string, $end, $ini) - $ini;
        return substr($string, $ini, $len);
    }

    function
usertag($tekst)
    {

        $tekst_aangepast = strtolower(str_replace(array(".", ",", "!", "?", ";"), " ", $tekst));
        $naam_orgineel = tussen($tekst_aangepast, '@', ' ');
        $res = mysql_query("SELECT id, naam FROM leden WHERE naam = '" . $naam . "' LIMIT 1");
        if($res !== false AND mysql_num_rows($res) != 0)
        {

            // fetch de data en maak die makkelijk beschikbaar
            $data = mysql_fetch_row($res);
            $id = $data[0];
            $naam = $data[1];

            // vervang in de orginele tekst de naam
            $tekst = str_replace("@" . $naam_orgineel, "<a href='" . SITELINK . "profiel/" . $id . "/'>@" . $naam . "</a>", $tekst);
        }

        return $tekst;
    }

?>


Nadeel: wat als er twee @ gebruikt worden?
Ik noem @Justin en @Eddy.
En is @Eddy en @Eddy E hetzelfde? Eddy E zal niet gevonden worden.
Gewijzigd op 04/03/2013 20:45:29 door Eddy E
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.