/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Replace.. hmmm..
Fra : Bo Dudek


Dato : 10-10-03 10:32

Hejsa

Jeg administrerer hjemmesiden for Vejle Kajakklub,
www.vejlekajakklub.dk, som jeg har lavet i php og mysql. På et
tidspunkt fik vi brug for et forum, og da jeg ikke ville opfinde den
dybe tallerken igen, hentede jeg et phpbb forum.

Det fungerer egentlig fint, og jeg har scriptet mig frem til altid at
få vist nyeste indlæg fra forummet på hjemmesidens forside. Dog har
jeg et lille problem:

Når folk bruger de indbyggede funktioner i forummet til f.eks. at
citere andre, så skriver phpbb'et f.eks. [quote dsd="bruger"] osv
osv.. og dette vil jeg IKKE have skal vises på forsiden..

Jeg kunne godt tænke mig at alle citerede tekster skrives med kursiv..
så der skal altså laves en str_replace.. jeg kan bare ikke få mit
hoved til at gennemskue, hvordan det helt præcis skal se ud.

Kig evt. på www.vejlekajakklub.dk på siden 'Velkommen' for at se
hvordan det ser ud.

Mvh
Bo Dudek
www.bodudek.dk


Kind regards
Bo Dudek
www.bodudek.dk

 
 
Thomas Lindgaard (10-10-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 10-10-03 12:17

Davs

> Når folk bruger de indbyggede funktioner i forummet til f.eks. at
> citere andre, så skriver phpbb'et f.eks. [quote dsd="bruger"] osv
> osv.. og dette vil jeg IKKE have skal vises på forsiden..
>
> Jeg kunne godt tænke mig at alle citerede tekster skrives med kursiv..
> så der skal altså laves en str_replace.. jeg kan bare ikke få mit
> hoved til at gennemskue, hvordan det helt præcis skal se ud.

Du kan ikke klare det med str_replace - preg_replace er nok et bedre bud.
Noget i retning af

$text = preg_replace("/\[quote dsd=\"\w+\"\](\w+)\[\/quote\]/",
"<em>\\1</em>", $text);

Det skulle i teorien (inde i mit hovede i hvert fald) kunne gøre følgende:
1) Finde [quote dsd="NOGET TEKST"]NOGET MERE TEKST[/quote]
2) Erstatte med "<em>NOGET MERE TEKST</em>"

Det er ganske utestet men måske virker det?

Mvh.
/Thomas



Bo Dudek (10-10-2003)
Kommentar
Fra : Bo Dudek


Dato : 10-10-03 12:43

[...]

> $text = preg_replace("/\[quote dsd=\"\w+\"\](\w+)\[\/quote\]/",
>"<em>\\1</em>", $text);
>

min tekst hedder $brodtekst, og jeg fandt ud af, at der f.eks. kunne
stå:

[quote:........]........[/quote]

hvor punktummerne er ukendte karakterer.. jeg prøvede så med:

//$brodtekst =
preg_replace("/\[quote:\"\w+\"\](\w+)\[\/quote\]/","<em>\\1</em>",
$brodtekst); ?>

men det gav ikke helt et resultat.. endnu et bud?

mvh
bo dudek
www.bodudek.dk


Kind regards
Bo Dudek
www.bodudek.dk

Nezar Nielsen (10-10-2003)
Kommentar
Fra : Nezar Nielsen


Dato : 10-10-03 12:51

Bo Dudek wrote:

> //$brodtekst =
> preg_replace("/\[quote:\"\w+\"\](\w+)\[\/quote\]/","<em>\\1</em>",
> $brodtekst); ?>
>
> men det gav ikke helt et resultat.. endnu et bud?

det er jo klart hvis du har kommenteret det væk..

$brodtekst = preg_replace("|\[quote:.*?\](.*?)\[/quote]|msi",
'<em>$1</em>', $brodtekst);

--
Mvh. Nezar Nielsen
http://fez.dk/


Bo Dudek (10-10-2003)
Kommentar
Fra : Bo Dudek


Dato : 10-10-03 17:04

[...]

>> //$brodtekst =
>> preg_replace("/\[quote:\"\w+\"\](\w+)\[\/quote\]/","<em>\\1</em>",
>> $brodtekst); ?>
>>
>> men det gav ikke helt et resultat.. endnu et bud?
>
>det er jo klart hvis du har kommenteret det væk..

*lol* det har jeg nu ikke i selve scriptet.. ehm..

mvh
bo dudek
www.bodudek.dk


Bo Dudek (11-10-2003)
Kommentar
Fra : Bo Dudek


Dato : 11-10-03 11:31

[...]

for en god ordens skyld skal jeg lige nævne, at jeg nu har pillet lidt
i det, så jeg har:

<? $brodtekst =
preg_replace("/\[quote:\"\w+\"\](\w+)\[\/quote:\"\w+\"\]/","<em>\\1</em>",
$brodtekst); ?>

men det virker stadig ikke..

mvh
bo dudek
www.bodudek.dk


Thomas Lindgaard (13-10-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 13-10-03 10:01

> for en god ordens skyld skal jeg lige nævne, at jeg nu har pillet lidt
> i det, så jeg har:
>
> <? $brodtekst =
> preg_replace("/\[quote:\"\w+\"\](\w+)\[\/quote:\"\w+\"\]/","<em>\\1</em>",
> $brodtekst); ?>
>
> men det virker stadig ikke..

Hvad så med det her?

<?php

$broedtekst = "blablabla [quote: hej med dig]Der var engang en lille hund
med blå ben[/quote] og her står der noget mere";
print "Før: $broedtekst";
print "<br>";
$broedtekst = preg_replace("/\[quote:(.*)?\](.*)?\[\/quote\]/s",
"<em>\\2</em>", $broedtekst);
print "Efter: $broedtekst";

print "<hr>";
print show_source(__FILE__);

?>

Mvh.
/Thomas



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste