Van string naar link

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Barman V

Barman V

01/05/2006 21:36:00
Quote Anchor link
Hej allen,

Een korte vraag.
Hoe kan je in een gastenboek ervoor zorgen dat als mensen een link intypen (bijv Bla bla bla www.abc.com blablabla), dat deze tekst wordt omgezet naar een echte klikbare link. (dus zoals in dit forum)

Misschien erg eenvoudig, maar ik kom er niet uit.
Ik zit te pielen met eregi_replace, enz.

Wat is nou de makkelijkste manier om dit te maken?

edit:
Moet je dan echt de invoer eerst exploden, zodat je dan alle woorden in een array krijgt en dan alle worden controleren of het begint met http:// of www. ? Zodat je deze tekens kan vervangen met <a href.... en het wordt laat eindigen op </a>
Gewijzigd op 01/01/1970 01:00:00 door Barman V
 
PHP hulp

PHP hulp

17/11/2024 19:41:12
 
Barman V

Barman V

01/05/2006 22:06:00
Quote Anchor link
Het werkt bij mij. Voor de mensen die het willen weten, ik heb het nu zo:

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
<?php
function manipulateString($string){
    //is er een link in de string, maak er dan een klikbare link van
    if (eregi('http://', $string) || eregi('www.', $string)){
        $string = explode(' ', $string);
        for ($i = 0; $i < count($string); $i++){
            if (substr($string[$i], 0, 7) == 'http://' || substr($string[$i], 0, 4) == 'www.'){
                $http = '';
                //altijd http:// in de link zetten
                if (substr($string[$i], 0, 4) == 'www.')
                    $http = 'http://';
                $string[$i] = '<a href="'.$http.$string[$i].'" target="_blank">'.$string[$i].'</a>';
            }
        }

        $string = implode(' ', $string);
    }

    $string = str_replace(
        array('[b]', '[/b]', '[i]', '[/i]', '[u]', '[/u]'),
        array('<b>', '</b>', '<i>', '</i>', '<u>', '</u>'),
        $string
    );
    return $string;
}


//in je gastenboekquery heb je bijv dit
$row['gb_berichtBericht'] = manipulateString($row['gb_berichtBericht']);
?>


Dit werkt prima, maar ik ben ervan overtuigd dat het nog makkelijker kan. Graag ideeën.

Edit
Ik heb het scriptje aangepast. Graag zou ik feedback ontvangen :)
Gewijzigd op 01/01/1970 01:00:00 door Barman V
 
S -

S -

01/05/2006 22:58:00
Quote Anchor link
en ftp://?
edit: +https:

misschien een btj flauw maar toch :P
ik weet namelijk niet waarvoor het gebruikt word;)

dat was wel het enige dat ik kon verzinnen
Gewijzigd op 01/01/1970 01:00:00 door S -
 
Barman V

Barman V

01/05/2006 23:45:00
Quote Anchor link
Je hebt gelijk. Ik zal het erin verwerken. Dank je.
Het is voor een familiegastenboek. Dus de doelgroep is LEEK. ftp zal er dan niet in voorkomen, toch zal ik het erin verwerken.

Leuk is ook dat je op deze manier de ingevoerde emailadressen klikbaar kan maken. Zo kan je ervoor zorgen dat niet die vervelende Outlook wordt opgestart (mailto), maar dat je ze doorlinkt naar jouw mailpagina. Zo kunnen ze via jouw site eenvoudig een mailtje sturen.
 
S -

S -

01/05/2006 23:56:00
Quote Anchor link
vind je outlook vervelend?

voor de gebruiker lijkt het me dat outlook handiger is. Maar als je het via php doet kan je makkelijker rotzooien met de email, zoals dingen toevoegen en dingen weglaten. Ip in de mail stoppen is dan ook mogelijk. Bij outlook lijkt me dat niet.
 
Barman V

Barman V

02/05/2006 00:06:00
Quote Anchor link
Ik vind Outlook niet vervelend, maar niet iedereen gebruikt Outlook. Vele van mijn doelgroep hebben hun Outlook niet ingesteld (die hebben alleen een internetadres), dan is het onnodig opstarten van Outlook erg vervelend.
Gewijzigd op 01/01/1970 01:00:00 door Barman V
 
S -

S -

02/05/2006 00:21:00
Quote Anchor link
daar geef ik je gelijk in.
 



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.