forum quote programmeren
Ik ben voor leer doeleinden bezig om phpbb in het klein na te maken waarbij je dan gebruik maakt van de phpbb database. Het enige wat me nog niet lukt is om de quote bb codes om te zetten naar daadwerkelijk quotes, kan iemand me hier aub mee helpen?
dus quotes als en
alvast bedankt!
grt stefan
dus quotes als en
alvast bedankt!
grt stefan
Gesponsorde koppelingen:
En wat heb je al geprobeerd?
Heb je al naar de code van phpbb gekeken?
Heb je al naar de code van phpbb gekeken?
keb nu pas het weergeven van forums, categorieën en topics (zonder bb natuurlijk), avatars.
Ik heb natuurlijk wel naar de code gekeken maar kom dr niet echt uit wat betreft bb codes
Ik heb natuurlijk wel naar de code gekeken maar kom dr niet echt uit wat betreft bb codes
het is me met preg_replace gelukt om de quotes op een "normale" manier te weergeven
en als je nu een string hebt laten we zeggen
hoe haal je daar dan uit dat de quote door stefan is geschreven?
hoe haal je daar dan uit dat de quote door stefan is geschreven?
Regex, moet je een capture group om bouwen.
Zoiets dus: /\[quote="([^"]+)"\]/
Mag er geen " in de naam van een gebruiker oid bevinden.
Zoiets dus: /\[quote="([^"]+)"\]/
Mag er geen " in de naam van een gebruiker oid bevinden.
Gewijzigd op 27/05/2010 16:32:41 door Karl Karl
@stefan; graag niet bumpen. Gebruik de 'edit' knop als je toevoegingen hebt.
@moderator, sorry
@Karl Karl en hoe weergeef je die naam dan? gewoon $1?
@Karl Karl en hoe weergeef je die naam dan? gewoon $1?
jah
aaah het begint al ergens op te lijken
en hoe noteer je [/quote] dan?
en hoe noteer je [/quote] dan?
\[\/quote\]
tis me al gelukt met $text = str_replace('[/quote]', '</blockquote>', $text);
super bedankt Karl!
super bedankt Karl!
Dat is ook een oplossing, maar je zou het in principe natuurlijk ook met 1 regex af kunnen handelen ;-)
en met preg_replace van
Leafar3456:37c9kscg:
naar
Leafar3456:
, hoe doe je dat dan?
Door met een regex het stuk tussen de = en de : te matchen en dat vervolgens in
Quote:
tussen de aanhalingstekens te plaatsen. Hoe de regex er precies uit moet zien, kun je natuurlijk eerst zelf even proberen uit te vinden...
zoiets dan?
$text = str_replace('[quote=([^\"]+):([^\"]+)]', '
$text = str_replace('[quote=([^\"]+):([^\"]+)]', '
$1:
', $text);
Heb je het al geprobeerd? Zo op het eerste gezicht kan ik je direct al vertellen dat je regex niet klopt. Duik eerst eens dieper in het gebruik van regexen, wat zijn het en hoe moet je ermee werken? Dan pas zal het je lukken om een goede regex op te stellen...
Edit: Nu je waarschijnlijk aan het kijken bent naar hoe regexen werken, kan ik je wel een deel van je uiteindelijke oplossing geven:
Probeer nu zelf te begrijpen wat alle verschillende onderdelen van de regex doen. Zie dan direct dat je die str_replace() van [/quote] niet meer nodig hebt ;-)
Edit: Nu je waarschijnlijk aan het kijken bent naar hoe regexen werken, kan ik je wel een deel van je uiteindelijke oplossing geven:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$string = 'ABCD [quote=Dsdf1EFG:123adsb]Tekst[/quote]';
$string = preg_replace('_\[quote=([^:]+):[^\]]+\]([^\[]+)\[/quote\]_i', '[quote="$1"]$2[/quote]', $string);
echo $string;
?>
$string = 'ABCD [quote=Dsdf1EFG:123adsb]Tekst[/quote]';
$string = preg_replace('_\[quote=([^:]+):[^\]]+\]([^\[]+)\[/quote\]_i', '[quote="$1"]$2[/quote]', $string);
echo $string;
?>
Probeer nu zelf te begrijpen wat alle verschillende onderdelen van de regex doen. Zie dan direct dat je die str_replace() van [/quote] niet meer nodig hebt ;-)
Gewijzigd op 28/05/2010 12:30:21 door Joren de Wit
tnx, ik zal t s doorspitten ;)
tnx voor de links, vooral die laatste sheet is handig, nu nog redelijk onbegrijpelijk maar wel handig. Op naar de volgende uitdaging :P
het weghalen van :3fcqmr0z bij
lukt me maar bij kom ik niet verder dan [url=http omdat dan ook een : komt ....
natuurlijk kan ik dan wel eerst http:// veranderen in http// en dan een preg_replace en dan weer terug veranderen naar http:// :P maar daar leer ik natuurlijk niks van, dus hoe doe je dat dan?
Code (php)
1
[url=http://eu.playstation.com/:3fcqmr0z][img:3fcqmr0z]http://mypsn.eu.playstation.com/psn/profile/stefan.png[/img:3fcqmr0z][/url:3fcqmr0z]
het weghalen van :3fcqmr0z bij
lukt me maar bij kom ik niet verder dan [url=http omdat dan ook een : komt ....natuurlijk kan ik dan wel eerst http:// veranderen in http// en dan een preg_replace en dan weer terug veranderen naar http:// :P maar daar leer ik natuurlijk niks van, dus hoe doe je dat dan?



