Avatar billede qub- Novice
08. maj 2003 - 20:23 Der er 9 kommentarer og
1 løsning

skrive link som: <link>bla</link>

Jeg er igang med og lave et adminsystem i php til en bruger.. Der kan han self adde og redigere tekst.. Og der kan man jo fx skrive: <a href="link">blabla</a> eller <img src="link.jpg"> <----- Kan man ikke gøre så han bare skal skrive fx: <link>blabla</link> og <pic>link.jpg</pic>

Plz vis mig hvordan.. og forklar hvad du har gjort :P
Avatar billede r.hegaard Nybegynder
08. maj 2003 - 20:28 #1
$text=eregi_replace("\\[link\\]([^\\[]*)\\[/link\\]","<a href=\"\\1\" target=\"_blank\">\\1</a>",$text);
Avatar billede schaefner Juniormester
08. maj 2003 - 20:28 #2
<?php
$tekst = "<link>http://bt.dk</link> <pic>http://disneyzone.dk/gfx/logo.gif</pic>";
$tekst = eregi_replace("<link>(.+)</link>","<a href=\"\\1\" target=\"_blank\">\\1</a>",$tekst);
$tekst = eregi_replace("<pic>(.+)</pic>","<img src=\"\\1\">",$tekst);
?>
Avatar billede qub- Novice
08. maj 2003 - 20:31 #3
Det er ligegodt.. men i må forklare mig det :D

asso mit nyhedsscript ser sådan her ud:

<?
if (!$id) {
  $res = mysql_query("SELECT * FROM news ORDER BY id DESC");
  while ($row = mysql_fetch_array($res)) { ?>
        <tr>
            <td bgcolor="#8D91A3">
            <div class="cap"><? echo $row['head']; ?>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<? echo $row['nick']; ?>&nbsp;@&nbsp;<? echo $row['date']; ?>.</div>
            </td>
        </tr>
        <tr>
            <td bgcolor="#878B9E" valign="top">
            <div class="txt"><? echo ereg_replace("\n", "<br />\n", $row['body2']); ?><br><br></div>
            </td>
        </tr>
        <tr>
            <td><img src="images/cap2.jpg"><a href="?id=<?php echo $row['id']; ?>"><img src="images/more.jpg" border="0"></a></td>
        </tr><br><br><?php

  }

}

else {

  $res = mysql_query("SELECT * FROM news WHERE id = '$id'");

  while ($row = mysql_fetch_array($res)) { ?>
  <tr>
            <td bgcolor="#8D91A3">
            <div class="cap"><? echo $row['head']; ?>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<? echo $row['nick']; ?>&nbsp;@&nbsp;<? echo $row['date']; ?>.</div>
            </td>
        </tr>
        <tr>
            <td bgcolor="#878B9E" valign="top">
            <div class="txt"><? echo ereg_replace("\n", "<br />\n", $row['body']); ?><br><br></div>
            </td>
        </tr><br><br>
        <tr>
            <td><img src="images/cap2.jpg"><a href="java script:history.go(-1)"><img src="images/back.jpg" border="0"></a></td>
        </tr>
        <?php
  }
}
?>



Og ---> <? echo ereg_replace("\n", "<br />\n", $row['body']); ?> <--- Er jo der hvor selve nyheden kommer.. Det er der det skal bruges :)

Hvis mig præcis hvordan det skal se ud :)
Avatar billede melange Nybegynder
08. maj 2003 - 20:33 #4
schaefner << nu er jeg ikke selv særlig god til RegExp, men er det ikke en "greedy" eregi_replace du har fat i der ?

hvis han nu har en tekst som ser sådan her ud:

"Se min hjemmeside <link>http://server.com</link>. Og se min brors hjemmeside <link>http://server2.com</link>. Er de ikke flotte?!

Vil din kode så ikke fange alt dette:

"<link>http://server.com</link>. Og se min brors hjemmeside <link>http://server2.com</link>."

og lave det til et stort link ?
Avatar billede schaefner Juniormester
08. maj 2003 - 20:35 #5
Noget alla:

<?
$row['body'] = eregi_replace("<link>(.+)</link>","<a href=\"\\1\" target=\"_blank\">\\1</a>",$row['body']);
$row['body'] = eregi_replace("<pic>(.+)</pic>","<img src=\"\\1\">",$row['body']);
echo nl2br($row['body']);
?>

Skal indsættes der hvor der står:
<? echo ereg_replace("\n", "<br />\n", $row['body']); ?>
Avatar billede qub- Novice
08. maj 2003 - 20:40 #6
schaefner.. Det virker.. Men kan jeg ikke gøre så den automatisk skriver: http:// foran???
Avatar billede schaefner Juniormester
08. maj 2003 - 20:40 #7
melange >> Det har du faktisk ret i ;o) Ikke særlig fikst
Avatar billede qub- Novice
08. maj 2003 - 23:22 #8
Jeg har ikke kunnet bruge jeres hjælpe tilfredstildene!!!

sorry.. så jeg lukker!
Avatar billede tipsen Nybegynder
08. maj 2003 - 23:27 #9
Næste gang bør du overveje at være mere taknemmelig overfor de folk der prøver at hjælpe dig og desuden lade dit spørgsmål stå åbent længere tid - hvis du altså ønsker at få hjælp til dit problem.
Avatar billede sepelio Nybegynder
12. juli 2003 - 22:26 #10
lol, så snupper han bare pointsne :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester