Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Linkki

Sivun loppuun

temu92 [22.05.2005 11:42:46]

#

Miten saa tehtyä sellaisen linkkijutun?? esim:

[linkkiurl=http://www.jokusivu.com ]Linkkitekstiä[/linkkiurl]

ja sitten koodi tulostaa linkkitekstissä olevan arvon linkkinä

Puhveli [22.05.2005 12:08:17]

#

Jos nyt oikein ymmärsin, niin ihan perus HTML-linkki tuohon tulisi, eli

<?php
    echo '<a href="http://foo.bar">Klikkaa tästä</a>';
?>

Jos haluat tehdä jonkun oman a-tagin, niin se on jo monimutkaisempi juttu ja vaatii hiukan stringeillä pelleilyä (johon php:ssä on onneksi valmiit funktiot). Tässä on yksi esimerkki jonka heitin lonkalta, ei kovin kaunis, mutta pienellä viilailulla siitä saa itselleen sopivan.

<?php
    $teksti = '[linkkiurl="http://foo.bar"]Klikkaa tästä[/linkkiurl]';

    $tulostus = $teksti;

    // muutetaan html-tageiksi
    $tulostus = str_replace('[linkkiurl="', '<a href="', $tulostus);
    $tulostus = str_replace('"]', '">', $tulostus);
    $tulostus = str_replace('[/linkkiurl]', '"</a>', $tulostus);

    echo $tulostus; // tulostaa jotain tyyliin '<a href="http://foo.bar">Klikkkaa tästä</a>'
?>

edit: Jos tahdot tähän lisää attribuutteja, kuten esim tooltip-tekstin tai linkin värin, niin siitä pitää sitten pähkäillä itse eteenpäin. Se on mahdollista, mutta varsinkin ensi kertaa tällaista tekevälle tuskaista.

edit: Niin joo, preg_replace(); on kanssa kaveri. Itse en vain ole sinut sen kanssa, mutta sitä on parempi käyttää, ja se näyttää tyylikkäämmältä.

sooda [22.05.2005 12:36:44]

#

Tai jotenki tällee

<?php
$tulostus = preg_replace("\\[linkkiurl\\=(.*?)\\](.*?)\\[\\/linkkiurl\\]", "<a href=\"\$1\">\$2</a>", $teksti);
?>

Puhveli [22.05.2005 13:15:44]

#

Nii, ja temu92, sulla näkyy olevan synttärit tänään / huomenna. Onnea ;)

temu92 [22.05.2005 13:17:08]

#

oikeestaan ne on vasta 5.6 eli ens kuussa

Puhveli [22.05.2005 13:52:00]

#

ahups.. :)
Mutta aika lähellä, eikö?

Blaze [22.05.2005 14:08:19]

#

0,035 vuotta on yllättävän pitkä aika :)

temu92 [22.05.2005 15:39:35]

#

15 päivää. pitkä aika. heh :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta