er zit nergens een ob start;) en higlight string zorgt voor die mooie kleurtjes:P
Verder weet ik niet egt wat het nog meer doet..
er zit nergens een ob start;) en higlight string zorgt voor die mooie kleurtjes:P
Verder weet ik niet egt wat het nog meer doet..
nou, ik heb dus een ubb-parser, en nu ben ik bezig met een code blok, dus dat je je scripts kan posten enzo..
Mar nu delete hij steeds alle enkele quotes.. Wat dus niet moet..
Beste,
Op dit moment ben ik druk bezig om een ubb parser aan te passen,
Nu zit ik met een volgende probleem:
Ik wil dat alles veilig is, maar dat wel alles perfect wordt weergegeven.
ik heb nu: $hoi = 'hoi'; en dan gaan de '' weg om de hoi, en dat kan natuurlijk niet..
Hopelijk kan iemand me helpen.
Kunt u misschien elk stukje nader toelichten, want dit is een rommeltje en weet dus eigenlijk niet wat welk ding doet:P
Groeten,
Luc
3 keer om voorbeelden vragen is beetje erg,
Heb je verstand van classes?
ik roep het nu aan met parse($forum['bericht']);
Maar dit heeft nog geen enkel effect want er komen nergens enters of wat dan ook..
Heel jammer en vreemd.
Is het misschien zo dat ik bestanden mis?
Als iemand een betere ubb parser heeft die werkt zoals deze mag die dat ook geven.
@ darsstar, het probleem is dat ik deze class vaker moet gebruiken, dus het is niet altijd $forum bericht, hoe koppel ik dan iets aan een var?
Ja die wordt hierin geinclude:
<?php
/**
* Bbcode testbestand
*
* @link http://en.wikipedia.org/wiki/BBCode
* @author Richard van Velzen
* @package Bbcode
*/
$startTime = microtime(true);
require 'allinone.php';
/**
* Verwerking voor de code tag
*
* @param string $tagName
* @param string $content
* @param array $arguments
* @return string
*/
function codeTag($tagName, $content, array $arguments) {
return '<pre><code>' . preg_replace('{(?=[\\r\\n])\\r?+\\n?+}', '</code><code>', htmlspecialchars($content)) . '</code></pre>';
}
/**
* url-tag specifieke rule
*
* @author Richard van Velzen
*/
class UrlTagRule extends TagRule {
/**
* Check of we binnen een andere url-tag zitten
*
* @param PointNode $node
* @return boolean
*/
public function isPermissableIn(PointNode $node) {
$initialValid = parent::isPermissableIn($node);
if($initialValid) {
// verdorie, nu moeten we de tree aflopen of we mogen
while(!$node->getRule() instanceof UrlTagRule) {
$node = $node->getParent();
if(!$node instanceof TagNode) {
return true;
}
}
}
return false;
}
}
/**
* Verwerking voor de url tag
*
* @param string $tagName
* @param string $content
* @param array $arguments
* @return string
*/
function linkTag($tagName, $content, array $arguments) {
$argName = $tagName == 'url' ? 'url' : 'href';
$link = &$arguments[$argName];
$match = array();
if(!isset($link) || !preg_match('{^(?:((?:https?|ftp)://)|\\w+\\.)[\\w.]+[;#&/~=\\w+()?.,:%-]*$}i', $link, $match)) {
return $content;
}
if(empty($match[1])) {
$link = 'http://' . $link;
}
return '<a href="' . $link . '">' . $content . '</a>';
}
/**
* Verwerking voor een image tag
*
* @param unknown_type $tagName
* @param unknown_type $content
* @param unknown_type $arguments
* @return unknown
*/
function imageTag($tagName, $content, array $arguments) {
$match = array();
if(!preg_match('{^(?:((?:https?|ftp)://)|\\w+\\.)[\\w.]+[;#&/~=\\w+()?.,:%-]*$}i', $content, $match)) {
return htmlspecialchars($content);
}
$url = $content;
if(empty($match[1])) {
$url = 'http://' . $url;
}
$alt = isset($arguments['alt']) ? htmlspecialchars($arguments['alt']) : '';
return '<img src="' . htmlspecialchars($url) . '" alt="' . $alt . '" />';
}
$text = file_get_contents('input.txt');
$parser = new Parser();
$parser->setLexer(new SplitLexer())
->addRule(new TagRule('b', 'inline', array('block', 'inline', 'listitem'), new TagTemplate('<strong>{$_content/nl2br}</strong>')))
->addRule(new UrlTagRule('url', 'inline', array('block', 'inline', 'listitem'), 'linkTag'))
->addRule(new UrlTagRule('a', 'inline', array('block', 'inline', 'listitem'), 'linkTag'))
->addRule(new TagRule('i', 'inline', array('block', 'inline', 'listitem'), new TagTemplate('<em>{$_content/nl2br}</em>')))
->addRule(new TagRule('u', 'inline', array('block', 'inline', 'listitem'), new TagTemplate('<span class="underline">{$_content/nl2br}</span>')))
->addRule(new TagRule('list', 'list', array('block', 'listitem'), new TagTemplate('<ul>{$_content/trim}</ul>'), TagRule::TRIM_BOTH))
->addRule(new TagRule('sup', 'inline', array('block', 'inline', 'listitem'), new TagTemplate('<sub>{$_content/nl2br}</sup>')))
->addRule(new TagRule('sub', 'inline', array('block', 'inline', 'listitem'), new TagTemplate('<sub>{$_content/nl2br}</sub>')))
->addRule(new TagRule('*', 'listitem', array('list'), new TagTemplate('<li>{$_content/trim/nl2br}</li>'), TagRule::TRIM_BOTH, TagRule::PARSE))
->addRule(new TagRule('quote', 'block', array('block'), new TagTemplate('<div class="quote">{$_content/trim/nl2br}</div>'), TagRule::TRIM_BOTH))
// letterlijke tags met callback
->addRule(new TagRule('img', 'image', array('block', 'inline', 'listitem'), 'imageTag', Tagrule::TRIM_NONE, TagRule::LITERAL))
->addRule(new TagRule('code', 'code', array('block'), 'codeTag', TagRule::TRIM_BOTH, TagRule::LITERAL));
$output = $parser->parse($text);
?>
Toon Meer
ik roep het aan via $parser->parse($forum['bericht']);
allinone is niets aan verandert en is dus zoals op de website.
Nou
ik heb het script erin zitten, en gedaan zoals het dus in je linkje staat dus de basistest geintergreerd in mijn systeem, en de library de naam allinone.php gegeven zoals bij hun.
Maar als ik nu echo $parser->parse($forum['bericht']);
doe dan parsed hij de tekst alsnog niet..
Ben ik dan nog wat vergeten?
Dat is mijn vraag.
[offtopic]
Ik vind cp slecht sinds ik gewoon op een topic reageerde waar een vraag in stond, en het ging over de eigenaar. Toen kreeg ik ban omdat ik zei dat het idd de eigenaar was.
[/offtopic]
ik heb dat linkje ook ingebouwd.. Maar nu wordt de parser nogsteeds niet uitgevoerd..
Hij werkt nu ongeeer, maar hoe maak ik nu een code block:$?
Dat heb ik al geprobeerd, maar blijft dezelfde error geven, ik heb zelf geen verstand van het aanroepen van classes. Dus denk dat ik daar iets fout doe.
Beste leden,
Ik gebruik de volgende ubb parser:
http://www.liefcoden.nl/ubb/pr…cept/source/allinone.html
Maar als ik deze erin bouw en aanroep via :
$parser->Parser($forum['bericht']);
Notice: Undefined variable: parser in /home/onenat/sub/com/forum/onderwerp.php on line 50
Fatal error: Call to a member function Parser() on a non-object in .../ on line 50
Dan werkt deze niet meer. Wie weet wat ik fout doe?
inmiddels is het al gelukt via een andere weg, wat misschien niet zo handig was. Maar wel efficiënter, gewoon een extra tabel aangemaakt waar de data wordt opgeslagen.
:slotje:
beste leden,
ik ben bezig met een poll script te maken, nu worden alle ip's opgeslagen in de database die al gestemd hebben. Nu moet het alleen nog gecontroleerd worden of de ip of user id in die tabel voorkomt.
ze worden als volgd opgeslagen.
ik ben speler 5 en ga stemmen, mijn stem is uitgebracht:
word alsvolgt opgeslagen in de database: 5,111.111.1.11
nu moet hij gaan zoeken of 5, of mijn ip voorkomt. Hoe doe ik dat?
ik heb al met strstr geprobeerd, en preg match maar het wou me niet baten.
Ne deze ubb moet code smileys etc gaan toevoegen, en er mag natuurlijk in de code geen smileys voorkomen, wat u zei had ik er al in zitten maar dat was dus niet ideaal
Hallo allemaal,
Ik ben op zoek naar iemand die deze ubb parser in mijn website kan bouwen:
http://www.liefcoden.nl/ubb/proof-of-concept.html
Met vriendelijke groet,
Luc
tuurlijk Scooby
<?php
function makeUBB($text)
{
// Links maken
$text = preg_replace("_\[url]http://(.*)\[/url\]_si", '<a href="$1" target="_blank">$1</a>', $text);
$text = preg_replace("_\[url](.*)\[/url\]_si", '<a href="http://$1" target="_blank">$1</a>', $text);
$text = preg_replace("_\[url=http://(.*)\](.*?)\[/url\]_si", '<a href="$1" target="_blank">$2</a>', $text);
//$text = preg_replace("_\[url=(.*)\](.*?)\[/url\]_si", '<a href="http://$1" target="_blank">$2</a>', $text);
$text = preg_replace("_\[email](.*)\[/email\]_si", '<a href="mailto://$1">$1</a>', $text);
//$text = preg_replace("_\[email=(.*)\](.*?)\[/email\]_si", '<a href="mailto:$1">$2</a>', $text);
//images
$text = preg_replace("_\[img\](.*?)\[/img\]_si", '<img src="$1" alt="Afbeelding" />', $text);
// Smilies
$text = str_replace("(a)"," <img src=\"".$site."/images/smileys/engel.gif\" alt=\"Angel\" title=\"(a) Angel\" />", $text);
$text = str_replace(":)"," <img src=\"".$site."/images/smileys/blij.gif\" alt=\"Blij\" title=\":) Blij\" />", $text);
$text = str_replace(":!"," <img src=\"".$site."/images/smileys/boos.gif\" alt=\"Boos\" title=\":! Boos\" />", $text);
$text = str_replace("(H)"," <img src=\"".$site."/images/smileys/bril.gif\" alt=\"Blij\" title=\"(H) Cool\" />", $text);
$text = str_replace("(dag)"," <img src=\"".$site."/images/smileys/dag.gif\" alt=\"Dag\" title=\"(dag) Dag\" />", $text);
$text = str_replace("(drink)"," <img src=\"".$site."/images/smileys/drink.gif\" alt=\"Drink\" title=\"(drink) Drink\" />", $text);
$text = str_replace("(hmm)"," <img src=\"".$site."/images/smileys/hmm.gif\" alt=\"Weet niet\" title=\"(hmm) weet niet\" />", $text);
$text = str_replace("(huh)"," <img src=\"".$site."/images/smileys/huh.gif\" alt=\"Huh\" title=\"(huh) Wat bedoel je?\" />", $text);
$text = str_replace("(omg)"," <img src=\"".$site."/images/smileys/omg.gif\" alt=\"OMG\" title=\"(omg) OMG\" />", $text);
$text = str_replace("(roll)"," <img src=\"".$site."/images/smileys/rolleyes.gif\" alt=\"Roll eyes\" title=\"(roll) Roll Eyes\" />", $text);
$text = str_replace(":("," <img src=\"".$site."/images/smileys/sip.gif\" alt=\"Huh\" title=\":( Verdrietig\" />", $text);
$text = str_replace("(slotje)"," <img src=\"".$site."/images/smileys/slotje.gif\" alt=\"Slotje\" title=\"(slotje) Sluiten\" />", $text);
$text = str_replace(":D"," <img src=\"".$site."/images/smileys/superblij.gif\" alt=\":D\" title=\":D Super blij\" />", $text);
$text = str_replace(":@"," <img src=\"".$site."/images/smileys/superboos.gif\" alt=\"Super boos\" title=\":@ Super boos\" />", $text);
$text = str_replace(":P"," <img src=\"".$site."/images/smileys/tong.gif\" alt=\":P\" title=\":P Tong\" />", $text);
$text = str_replace("(wat)"," <img src=\"".$site."/images/smileys/wat.gif\" alt=\"Wat?\" title=\"(wat) Wat bedoel je?\" />", $text);
$text = str_replace("xD"," <img src=\"".$site."/images/smileys/xd.png\" alt=\"xD\" title=\"xD\" />", $text);
//offtopic
$text = preg_replace("_\[offtopic\](.*?)\[/offtopic\]_si", '<span style="font-size: 10px; color: #888888;"><em>$1</em></span>', $text);
$text = preg_replace("_\[OFFTOPIC\](.*?)\[/ot\]_si", '<span style="font-size: 10px; color: #888888;"><em>$1</em></span>', $text);
$text = preg_replace("_\[ot\](.*?)\[/ot\]_si", '<span style="font-size: 10px; color: #888888;"><em>$1</em></span>', $text);
$text = preg_replace("_\[OT\](.*?)\[/ot\]_si", '<span style="font-size: 10px; color: #888888;"><em>$1</em></span>', $text);
// Quotes
while(preg_match("((\[quote=(.+?)\](.+?)\[\/quote\])|(\[quote\](.+?)\[\/quote]))is", $text))
{
$text = preg_replace("(\[quote=(.+?)\](.+?)\[\/quote\])is",'<fieldset><legend> <b>$1 schreef:</b> </legend><br />$2<br /></fieldset><br />' ,$text);
$text = preg_replace("(\[quote\](.+?)\[\/quote])is",'<fieldset><legend> <b>Quote</b> </legend><br />$1<br /></fieldset><br />' ,$text);
}
$text = preg_replace("_\[code\](.+?)\[/code\]_ise", "customHighlight('\\1')", $text);
return $text;
}
function customHighlight($data)
{
$data = str_replace("<br>", "", $data);
$data = str_replace("<br />", "", $data);
$data = str_replace(">", ">", $data);
$data = str_replace("<", "<", $data);
$data = str_replace(""", "\"", $data);
$data = str_replace("&", "&", $data);
$data = str_replace('$', '\$', $data);
$data = str_replace('\n', '\\\\n', $data);
$data = str_replace('\r', '\\\\r', $data);
$data = str_replace('\t', '\\\\t', $data);
$data = str_replace(':)', ':)', $data);
$lines = explode(PHP_EOL, trim($data));
$i=1;
$code = '<div class="Code">
<div class="Code_Titel">PHP code</div>
<div class="Left">';
foreach ($lines as $line)
{
$code .= $i.'<br />';
$i++;
}
$code .= '</div>
<div class="Right">
'.highlight_string(trim($data), true).'
</div>
</div>';
return $code;
}
?>
Toon Meer
Helaas werkt deze dus niet zoals het moet..