Avatar billede supernewbie Nybegynder
12. juni 2003 - 01:35 Der er 21 kommentarer og
1 løsning

Er det bare en replace funktion ?

altså mii spg går på at når man skriver [b] Hej [/] så bliver hej skrevet med fed, det skal bruges i et forum, men jeg gætter på at det faktisk bare er en replace der først fjerner alt html og så replacer [b] med <b>
og [url] bliver lavet om til noget med <a href="url">url
Er det sådan eller er der bedre måder? ?
Avatar billede ohmish Nybegynder
12. juni 2003 - 02:02 #1
det lyder da fornuftigt nok.. men hva hvis folk glemmer at afslutte med [/] ?
Avatar billede ohmish Nybegynder
12. juni 2003 - 02:03 #2
eller er det automatisk altid iorden?
Avatar billede Slettet bruger
12. juni 2003 - 02:05 #3
Umiddelbart er det den letteste måde at gøre det på...
Ohmish har set problemet med uafsluttede tags... men hvor meget overkill skal man ligge i sådan noget... det er op til dig!?
(Jeg går ud fra at du kun vil bruge harmløse tags som <i> <b> <u> <a>)
Bare smid indholdet inde i en <td> eller <div> så er der ingen problemer...

Eventuelt kan du lave noget regexp!?
Avatar billede supernewbie Nybegynder
12. juni 2003 - 02:07 #4
ja det var faktisk derfor jeg stillede spg. pga. det der prob. hvis de ikke sætter det.. Hvordan laver jeg det ?? Uden at lave en <div> eller <TD>
Avatar billede Slettet bruger
12. juni 2003 - 02:51 #5
Så har du det grundlæggende resten må du selv ordne...
<?php
    $str = "fdsajl fsdajlk fdsajlæk s[/b]fadl fsdajlk fds[b]ajlæk s[/b]fad";
    $pattern = '/(\[b\])((.|\n)*?)(\[\/b\])/';
    $replace = '<b>\\2</b>';
    echo $str."</br>";
    $str = preg_replace($pattern, $replace, $str);
    $str = str_replace("[b]","",$str);
    $str = str_replace("
","",$str);
    echo $str;
?>
Avatar billede supernewbie Nybegynder
12. juni 2003 - 03:57 #6
det virker nu ikke det du har lavet:
http://www.chatsniksnak.dk/test.php
Avatar billede supernewbie Nybegynder
12. juni 2003 - 04:00 #7
Nååå jo, kl. er jo osse 4 nu, hehe
Men vil du ikke forklare det lidt nærmere, for jeg har aldrig rigtigt fattet det med:
$pattern = '/(\[b\])((.|\n)*?)(\[\/b\])/';
osv. :)
Vil gerne ligge flere p til hvis det er ?
Avatar billede ohmish Nybegynder
12. juni 2003 - 08:50 #8
regin> jeg mente mest det med [url] :)
Avatar billede gonza.dk Nybegynder
12. juni 2003 - 10:19 #9
den med url kan du klare med dette script:
http://www.ljweb.biz/?Ref=usefulscripts

vælg den der hedder tagster_lib.php

Mvh
Gonza
Avatar billede exp Juniormester
12. juni 2003 - 11:51 #10
Link:
-------------------------------------------
<?php
    $str = str_replace("&", "&amp;", $str);
    $str = str_replace("<", "&lt;", $str);
    $str = str_replace(">", "&gt;", $str);
    $str = str_replace("  ", "&nbsp; ", $str);
    $str = str_replace("\t", "&nbsp;&nbsp;&nbsp; ", $str);
    $str = str_replace("\r", "", $str);
    $str = str_replace("\n", "<br>", $str);
    $str = eregi_replace("(( |\n|\r)((f|ht)tp://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='\\1' target='_blank' class='main'>\\1</a>", $str);
    $str = eregi_replace("([ |\n|\r](www)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='http://\\1' target='_blank' class='main'>\\1</a>", $str);

    $str = ereg_replace("\[link=http://([^]]+)\]", "<a href='http://\\1' target='_blank' class='main'>", $str);
    $str = ereg_replace("\[link=www([^]]+)\]", "<a href='http://www\\1' target='_blank' class='main'>", $str);
    $str = ereg_replace("\[/link\]", "</a>", $str);
?>
-----------------------------------------------

Så kan du skrive [link]www.dr.dk[/link], [link=www.dr.dk]Klik her for at åbne DR's hjemmeside[/link]


Regins burde virke med denne rettelse:
-----------------------------------------
<?php
    $str = "fdsajl fsdajlk fdsajlæk s[/b]fadl fsdajlk fdsajlæk s[/b]fad";
    $pattern = '/(\[b\])((.|\n)*?)(\[\/b\])/';
    $replace = '<b>\\2</b>';
    echo $str."</br>";
    $str = preg_replace($pattern, $replace, $str);
    $str = str_replace("[b]","",$str);
    $str = str_replace("
","",$str);
    echo $str;
?>
Avatar billede Slettet bruger
12. juni 2003 - 12:45 #11
Supernewbie>>Jeg kan ikke lige se hvad der IKKE virkede i mit script!?
De steder der skulle være blevet _BOLDED_ er jo tydeligvis _bolded_
http://www.chatsniksnak.dk/test.php
Avatar billede exp Juniormester
12. juni 2003 - 12:47 #12
regin >>
tror bare det er fordi der mangler en [/b] i denne linie:
$str = "fdsajl fsdajlk fdsajlæk s[/b]fadl fsdajlk fds[b]ajlæk s[/b]f[b]ad";
Avatar billede Slettet bruger
12. juni 2003 - 12:52 #13
exp>>det er jo ikke nogen fejl... :P
Avatar billede supernewbie Nybegynder
12. juni 2003 - 18:54 #14
regin jeg rettede også:

Kommentar: supernewbie
12/06-2003 04:00:08    Nååå jo, kl. er jo osse 4 nu, hehe
Men vil du ikke forklare det lidt nærmere, for jeg har aldrig rigtigt fattet det med:
$pattern = '/(\[b\])((.|\n)*?)(\[\/b\])/';
osv. :)
Vil gerne ligge flere p til hvis det er ?
Avatar billede exp Juniormester
12. juni 2003 - 18:59 #15
Avatar billede Slettet bruger
12. juni 2003 - 21:06 #16
(\[b\]) -> Find i strengen
((.|\n)*?) ->Find alle tegn indtil næste mønster
(\[\/b\]) -> Find


Det er den mest simple måde at forklare det på!
Regular expressions er meget mere komplekse end som så... jeg vil anbefale, at du lærer det hen ad vejen eller læser tutorial om det!
Avatar billede supernewbie Nybegynder
15. juni 2003 - 14:12 #17
exp

det med link virker ikke:

http://www.chatsniksnak.dk/besked2.php
Avatar billede supernewbie Nybegynder
15. juni 2003 - 14:12 #18
<?

$str = "Hej <b> pik </b>[link] chatsniksnak.dk [/link] <hæhæh> </hæhæh>";


    $str = str_replace("&", "&amp;", $str);
    $str = str_replace("<", "&lt;", $str);
    $str = str_replace(">", "&gt;", $str);
    $str = str_replace("  ", "&nbsp; ", $str);
    $str = str_replace("\t", "&nbsp;&nbsp;&nbsp; ", $str);
    $str = str_replace("\r", "", $str);
    $str = str_replace("\n", "<br>", $str);
    $str = eregi_replace("(( |\n|\r)((f|ht)tp://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='\\1' target='_blank' class='main'>\\1</a>", $str);
    $str = eregi_replace("([ |\n|\r](www)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='http://\\1' target='_blank' class='main'>\\1</a>", $str);

    $str = ereg_replace("\[link=http://([^]]+)\]", "<a href='http://\\1' target='_blank' class='main'>", $str);
    $str = ereg_replace("\[link=www([^]]+)\]", "<a href='http://www\\1' target='_blank' class='main'>", $str);
    $str = ereg_replace("\[/link\]", "</a>", $str);



echo " $str ";

?>
Avatar billede supernewbie Nybegynder
15. juni 2003 - 16:47 #19
Ingen der kan hjælpe ??
Avatar billede exp Juniormester
15. juni 2003 - 17:26 #20
Det har det virker:

--------------------------------------------------------

<?php
    $str = str_replace("&", "&amp;", $str);
    $str = str_replace("<", "&lt;", $str);
    $str = str_replace(">", "&gt;", $str);
    $str = str_replace("  ", "&nbsp; ", $str);
    $str = str_replace("\t", "&nbsp;&nbsp;&nbsp; ", $str);
    $str = str_replace("\r", "", $str);
    $str = str_replace("\n", "<br>", $str);
    $str = eregi_replace("(( |\n|\r)((f|ht)tp://)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='\\1' target='_blank' class='main'>\\1</a>", $str);
    $str = eregi_replace("([ |\n|\r](www)([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.|-|:|æ|ø|å)+){0,})", " <a href='http://\\1' target='_blank' class='main'>\\1</a>", $str);

    $str = ereg_replace("\[link=http://([^]]+)\]", "<a href='http://\\1' target='_blank' class='main'>", $str);
    $str = ereg_replace("\[link=www([^]]+)\]", "<a href='http://www\\1' target='_blank' class='main'>", $str);
    $str = ereg_replace("\[/link\]", "</a>", $str);
?>

----------------------------------------------------
bruger det selv på en side jeg arbejder på
Avatar billede exp Juniormester
15. juni 2003 - 17:38 #21
Avatar billede exp Juniormester
15. juni 2003 - 18:27 #22
Vi kom frem til dette:
firewerx.dk/exp/chatsniksnak.phps
firewerx.dk/exp/view_topic.phps
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