Avatar billede cronaldo Nybegynder
29. januar 2006 - 18:43 Der er 23 kommentarer og
3 løsninger

Regular Expressions i PHP?

tekst -> <b>tekst</b>
[a href="url"]tekst[/a] -> <a href="url">tekst</a>
tekst -> <i>tekst</i>
tekst -> <u>tekst</u>

----------------------------------------------------------------
Læg mærke til denne, hvis det ikke kan gøres på denne måde, så lav selv en anden måde, hvorpå det kan gøres :)
[font-color:#000000]tekst[/font-color]
----------------------------------------------------------------

[hr color=(vælg farve) height=(vælg højde) width=(vælg bredde, fx: width=95% eller width=95)] -> <hr color="(det der stod i color)" size="(det der stod i height)" width="(det der stod i width) />

[left]tekst[/left] -> <p align="left">tekst</p>
tekst
-> <p align="center">tekst</p>
[right]tekst[/right] -> <p align="right">tekst</p>

[img src="billede"] -> <img src="billede" border="0" />


.. :)
Avatar billede 17196 Nybegynder
29. januar 2006 - 18:56 #1
Okay! Now give me 200 pts.
Avatar billede coderdk Praktikant
29. januar 2006 - 18:59 #2
Hvorfor bruger du ikke bare strip_tags eller en bbcode class: http://google.com/search?q=php+bbcode+class
Avatar billede Slettet bruger
29. januar 2006 - 19:28 #3
Jep, så er det læst.
Avatar billede jakobdo Ekspert
29. januar 2006 - 19:30 #4
Som flere er inde på, hvad er det helt præcist du vil have?
Avatar billede cronaldo Nybegynder
29. januar 2006 - 19:35 #5
jeg vil have den laver dem der står inden pilen (->) om til dem der står efter pilen (->) ? :S
Avatar billede 17196 Nybegynder
29. januar 2006 - 19:40 #6
$row[comment] = eregi_replace("\[b\]([^[]+)\[/b\]","<b>\\1</b>",$row[comment]);
$row[comment] = eregi_replace("\[URL\]([^[]+)\[/URL\]","<a href=\"\\1\" target=\"_blank\">\\1</a>",$row[comment]);

osv....
Avatar billede jakobdo Ekspert
29. januar 2006 - 19:43 #7
Måske noget i denne stil:

preg_replace('/\\[hr\\scolor=(.+?)\\sheight=(.+?)\\swidth=(.+?)]/', '<hr color="$1" height="$2" width="$3" />', $input, $output);
Avatar billede cronaldo Nybegynder
29. januar 2006 - 20:03 #8
jakobdo ? hvordo $input og $output i enden af din ? :I
Avatar billede jakobdo Ekspert
29. januar 2006 - 20:05 #9
$input = "[hr color=(vælg farve) height=(vælg højde) width=(vælg bredde, fx: width=95% eller width=95)]";
$output vil så (eller burde) indeholde = "<hr color="(det der stod i color)" size="(det der stod i height)" width="(det der stod i width) />";

Min regexp er dog kun til din HR kode.
Avatar billede cronaldo Nybegynder
29. januar 2006 - 20:11 #10
okay .. hmm, det skal helst være noget der kan det hele .. Men jeg skal bare have sådan, at hvis man skriver noget af det der i et textarea, så udskrives det som det efter pilen ? :S

- Gider I ikke lave komplette lnjer der kan det, til alle dem jeg gav ? :)
Avatar billede jakobdo Ekspert
29. januar 2006 - 20:18 #11
Nej!
Meningen med exp.dk er ikke færdige løsninger.
Ideen er du prøver lidt selv, eller du får nogle hints, og så laver du selv resten eller vi retter det til for dig.
Avatar billede 17196 Nybegynder
29. januar 2006 - 20:19 #12
Det lærer du jo ingenting af, følg de eksempler der er givet, så kan du sagtens rege den ud!
Avatar billede jakobdo Ekspert
29. januar 2006 - 20:23 #13
Evt hent www.regexpbuddy.com
Det er godt til at begynde på!
Avatar billede cronaldo Nybegynder
29. januar 2006 - 20:36 #14
okay .. Så smid svar ! :)
Avatar billede jakobdo Ekspert
29. januar 2006 - 20:57 #15
Det er ikke alle 200 point værdigt, men her har du et!
(Husk at del med de andre som har hjulpet dig på vej)
Avatar billede Slettet bruger
29. januar 2006 - 20:59 #16
cronaldo jeg ville droppe alle dine regexp's, og så lade folk benytte sig af alm html i stedet.. Muligvis med nogle tilladte tegn vha strip_tags.
Avatar billede cronaldo Nybegynder
29. januar 2006 - 21:01 #17
wicez: Jaa, det kunne godt være det blev vejen, i hvert fald tak for hjælpen :)
svar alle sammen :)!! :)
Avatar billede 17196 Nybegynder
29. januar 2006 - 21:11 #18
.
Avatar billede Slettet bruger
29. januar 2006 - 21:33 #19
Ellers drop dine colors osv.. Så er det nemt at erstatte med nogle arrays
Avatar billede cronaldo Nybegynder
29. januar 2006 - 22:26 #20
finder ud af det :)
Avatar billede jakobdo Ekspert
29. januar 2006 - 22:27 #21
Takker for point!
Avatar billede Slettet bruger
29. januar 2006 - 22:56 #22
Tak for point.
Avatar billede olebole Juniormester
30. januar 2006 - 08:04 #23
<ole>

- der er også en del performance-ting at tage hensyn til:
1. RegExps kan være grådige. Brug hellere ´str_replace', når du har muligheden.
2. Vælger du at bruge RegExp, så brug de Perl-kompatible ... 'preg' i stedet for 'ereg'. De første performer bedre.
3. der er en ofte overset 'oversætter-funktion' i PHP: 'strtr' (= string-translate)

$s = "jlkj jklj lkj lkjlkjl jl jlj ljlkjlk ljl kjlkj lkjl";

$aRepl = array(
  "" => "<b>",
  "
" => "</b>",
  "" => "<i>",
  "
" => "</i>"
);

$s = strtr($s, $aRepl);
print $s;

http://dk2.php.net/manual/da/function.strtr.php

/mvh
</bole>
Avatar billede Slettet bruger
30. januar 2006 - 10:56 #24
olebole, det var den jeg mente, da jeg nævnte arrays :)
Avatar billede cronaldo Nybegynder
30. januar 2006 - 16:57 #25
argh, den der str_replace har jeg engang brugt ?
- hvordan er det nu man gør det, OleBole?
Smider bare flere point i et andet spørgsmål hvis det er? :)
Avatar billede olebole Juniormester
30. januar 2006 - 17:00 #26
$s = str_replace("[b]", "<b>", $s);

- og du kan også bruge arrays her, men strtr er nok lettest/bedst at bruge  :)

http://dk.php.net/manual/da/function.str-replace.php
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel