Hi luitjes!
Ik ben op het mom bezig met een functie om html naar BBcode om te zetten. Nou krijg ik wel wat aan de praat, maar ik begrijp een paar dingetjes niet. miss dat 1 van jullie mij kan helpen...
Ik heb de volgende code:
function format_comment($s, $strip_html = true) {
if ($strip_html) $s = htmlspecialchars($s);
$s = preg_replace("/\[b\]((\s|.)+?)\[\/b\]/", "<b>\\1</b>", $s);
$s = preg_replace("/\[i\]((\s|.)+?)\[\/i\]/", "<i>\\1</i>", $s);
$s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/", "<u>\\1</u>", $s);
$s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/i", "<u>\\1</u>", $s);
return $s;
}
effe puur als voorbeeld.
In dit voorbeeld maak ik van BBcode [ b ] .. [ /b ], HTML <b> .. </b>.
Ik moet het anderom hebben, dus ga ik van de code dit maken:
$s = preg_replace("/\<b\
(\s|.)+?)\<\/b\>/", "\\1", $s);
en dat werkt prima.
Met de functie preg_replace heb ik geen problemen mee, alleen dit stukje begrijp ik niet, en kan ik ook niks over vinden: ((\s|.)+?)
die \s weet ik wel, die staat voor string.
een \d staat voor numeriek geloof ik,
en een $ staat voor wildcard als ik het goed heb.
Maar waar komt deze notatie vandaan? Lijkt wel op perl of python. Het vreemde vind ik, dat ik er op php.net niks over kan vinden.
het gaat om deze regel hier, en daar ben ik nu al de hele dag mee aan het puzzelen.
$s = preg_replace("/\[img\]([^\s'\"<>]+?)\[\/img\]/i", "<img border=0 src=\"\\1\">", $s);
Nu krijg ik uit [ img ] [ /img ] perfect de html terug, maar ik moet het andersom hebben.
$s = preg_replace("/\<img\ src=\"([^\s'\"<>]+?)\">/i", "[ img ]\\1[ /img ]", $s);
En dat hierboven werkt niet!!!
Wat houd dit in? ([^\s'\"<>]+?)
Kan iemand helpen aub?
Ik ben het bekende draardje effe kwijt....
Ik ben op het mom bezig met een functie om html naar BBcode om te zetten. Nou krijg ik wel wat aan de praat, maar ik begrijp een paar dingetjes niet. miss dat 1 van jullie mij kan helpen...
Ik heb de volgende code:
function format_comment($s, $strip_html = true) {
if ($strip_html) $s = htmlspecialchars($s);
$s = preg_replace("/\[b\]((\s|.)+?)\[\/b\]/", "<b>\\1</b>", $s);
$s = preg_replace("/\[i\]((\s|.)+?)\[\/i\]/", "<i>\\1</i>", $s);
$s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/", "<u>\\1</u>", $s);
$s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/i", "<u>\\1</u>", $s);
return $s;
}
effe puur als voorbeeld.
In dit voorbeeld maak ik van BBcode [ b ] .. [ /b ], HTML <b> .. </b>.
Ik moet het anderom hebben, dus ga ik van de code dit maken:
$s = preg_replace("/\<b\
en dat werkt prima.
Met de functie preg_replace heb ik geen problemen mee, alleen dit stukje begrijp ik niet, en kan ik ook niks over vinden: ((\s|.)+?)
die \s weet ik wel, die staat voor string.
een \d staat voor numeriek geloof ik,
en een $ staat voor wildcard als ik het goed heb.
Maar waar komt deze notatie vandaan? Lijkt wel op perl of python. Het vreemde vind ik, dat ik er op php.net niks over kan vinden.
het gaat om deze regel hier, en daar ben ik nu al de hele dag mee aan het puzzelen.
$s = preg_replace("/\[img\]([^\s'\"<>]+?)\[\/img\]/i", "<img border=0 src=\"\\1\">", $s);
Nu krijg ik uit [ img ] [ /img ] perfect de html terug, maar ik moet het andersom hebben.
$s = preg_replace("/\<img\ src=\"([^\s'\"<>]+?)\">/i", "[ img ]\\1[ /img ]", $s);
En dat hierboven werkt niet!!!
Wat houd dit in? ([^\s'\"<>]+?)
Kan iemand helpen aub?
Ik ben het bekende draardje effe kwijt....












