php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.07.2005, 14:34  
b++
Erfahrener Benutzer
 
Registriert seit: 08.08.2007
Beiträge: 181
b++ befindet sich auf einem aufstrebenden Ast
Standard Problem mit BBCODE

So habe da jetzt ein BBCODE Script für meine editnews function.
Aber irgendwie funktioniert die nicht richtig obwohl ich kein fehler sehe.
Vielleicht kann mir ja jemand helfen!
Also mein genaues Problem ist das wenn ich ein Text eingeb der an die Funktion übergeben wird und da z.b. [b]Test steht das sich nix ändert sondern das einfach so wieder ausgeben wird ohne das es durch ein HTMl Tag ersetzt wird!
Hier meine Funktion
PHP-Code:
<?php
function editnews($titel$inhalt$inhalt_long$id$cat)
{
    
    
    
    
    require_once 
'stringparser_bbcode.class.php';
    
$bbcode = new StringParser_BBCode ();
    
// Zeilenumbrüche verschiedener Betriebsysteme vereinheitlichen
function convertlinebreaks ($text) {
    return 
preg_replace ("/\015\012|\015|\012/""\n"$text);
}

// Alles bis auf Neuezeile-Zeichen entfernen
function bbcode_stripcontents ($text) {
    return 
preg_replace ("/[^\n]/"''$text);
}

function 
do_bbcode_url ($action$attributes$content$params$node_object) {
    if (
$action == 'validate') {
        return 
true;
    }
    if (!isset (
$attributes['default'])) {
        return 
'[url="'.htmlspecialchars ($content).'"]'.htmlspecialchars ($content).'[/url]';
    }
    return 
'[url="'.htmlspecialchars ($attributes['default']).'"]'.$content.'[/url]';
}

// Funktion zum Einbinden von Bildern
function do_bbcode_img ($action$attributes$content$params$node_object) {
    if (
$action == 'validate') {
        return 
true;
    }
    return 
'[img]'.htmlspecialchars($content).'[/img]';
}


$bbcode->addFilter (STRINGPARSER_FILTER_PRE'convertlinebreaks');

$bbcode->addParser (array ('block''inline''link''listitem'), 'htmlspecialchars');
$bbcode->addParser (array ('block''inline''link''listitem'), 'nl2br');
$bbcode->addParser ('list''bbcode_stripcontents');

$bbcode->addCode ('b''simple_replace'null, array ('start_tag' => '[b]''end_tag' => '[/b]'),
                  
'inline', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('i''simple_replace'null, array ('start_tag' => '[i]''end_tag' => '[/i]'),
                  
'inline', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('url''usecontent?''do_bbcode_url', array ('usecontent_param' => 'default'),
                  
'link', array ('listitem''block''inline'), array ('link'));
$bbcode->addCode ('link''callback_replace_single''do_bbcode_url', array (),
                  
'link', array ('listitem''block''inline'), array ('link'));
$bbcode->addCode ('img''usecontent''do_bbcode_img', array (),
                  
'image', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('bild''usecontent''do_bbcode_img', array (),
                  
'image', array ('listitem''block''inline''link'), array ());
$bbcode->setOccurrenceType ('img''image');
$bbcode->setOccurrenceType ('bild''image');
$bbcode->setMaxOccurrences ('image'2);
$bbcode->addCode ('list''simple_replace'null, array ('start_tag' => '<ul>''end_tag' => '[/list]'),
                  
'list', array ('block''listitem'), array ());
$bbcode->addCode ('*''simple_replace'null, array ('start_tag' => '[*]''end_tag' => ''),
                  
'listitem', array ('list'), array ());
$bbcode->setCodeFlag ('*''closetag'BBCODE_CLOSETAG_OPTIONAL);
$bbcode->setCodeFlag ('*''paragraphs'true);
$bbcode->setCodeFlag ('list''paragraph_type'BBCODE_PARAGRAPH_BLOCK_ELEMENT);
$bbcode->setCodeFlag ('list''opentag.before.newline'BBCODE_NEWLINE_DROP);
$bbcode->setCodeFlag ('list''closetag.before.newline'BBCODE_NEWLINE_DROP);
$bbcode->setRootParagraphHandling (true);


$inhalt2 $bbcode->parse ($inhalt);
    





            
    
$con mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) or die(mysql_error());
    if(
$con)
    {
        
mysql_select_db(MYSQL_DB);
         
$sql "UPDATE news
SET
  Titel = '$titel',
  Inhalt = '$inhalt2',
  Inhalt_long = '$inhalt_long',
  Cat = '$cat'
WHERE
  ID = $id"

        
$result mysql_query($sql) OR die(mysql_error());
    }
    else
    {
        
$error "Fehler in der Datenbank:
\n"
.$con."
\n"
;
        return 
$error;
    }
$message .= "News wurde geändert!";
return 
$message;
    
}
?>
b++ ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.07.2005, 14:58  
Erfahrener Benutzer
 
Registriert seit: 14.04.2005
Beiträge: 1.004
search
Standard

bbcode stringparser class von christian seiler wenn mich nicht alles täuscht oder?

du wendest sie aber komplett falsch an

du hast da die 2 class dateien und in einer anderen legst du dir die config mit den ganzen funktionen an
die benötigten zwei dateien dann includen
objekt erzeugen und durch den parser jagen
feddisch

du packst das ganze dann zusätzlich noch in eine funktion die zudem noch einen falschen return wert liefert was ich so sehe :wink:
wenn dus unbedingt so machen willst pack alles in ein array und lass dir das zurückliefern, erhöht zudem die übersichtlichkeit ...

greez search
__________________
schlimmer gehts nimmer.... dümmer immer!
search ist offline  
Alt 02.07.2005, 15:26  
b++
Erfahrener Benutzer
 
Registriert seit: 08.08.2007
Beiträge: 181
b++ befindet sich auf einem aufstrebenden Ast
Standard

Also ich soll den Code hier:
PHP-Code:
<?php

   
// Zeilenumbrüche verschiedener Betriebsysteme vereinheitlichen
function convertlinebreaks ($text) {
    return 
preg_replace ("/\015\012|\015|\012/""\n"$text);
}

// Alles bis auf Neuezeile-Zeichen entfernen
function bbcode_stripcontents ($text) {
    return 
preg_replace ("/[^\n]/"''$text);
}

function 
do_bbcode_url ($action$attributes$content$params$node_object) {
    if (
$action == 'validate') {
        return 
true;
    }
    if (!isset (
$attributes['default'])) {
        return 
'[url="'.htmlspecialchars ($content).'"]'.htmlspecialchars ($content).'[/url]';
    }
    return 
'[url="'.htmlspecialchars ($attributes['default']).'"]'.$content.'[/url]';
}

// Funktion zum Einbinden von Bildern
function do_bbcode_img ($action$attributes$content$params$node_object) {
    if (
$action == 'validate') {
        return 
true;
    }
    return 
'[img]'.htmlspecialchars($content).'[/img]';
}


$bbcode->addFilter (STRINGPARSER_FILTER_PRE'convertlinebreaks');

$bbcode->addParser (array ('block''inline''link''listitem'), 'htmlspecialchars');
$bbcode->addParser (array ('block''inline''link''listitem'), 'nl2br');
$bbcode->addParser ('list''bbcode_stripcontents');

$bbcode->addCode ('b''simple_replace'null, array ('start_tag' => '[b]''end_tag' => '[/b]'),
                  
'inline', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('i''simple_replace'null, array ('start_tag' => '[i]''end_tag' => '[/i]'),
                  
'inline', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('url''usecontent?''do_bbcode_url', array ('usecontent_param' => 'default'),
                  
'link', array ('listitem''block''inline'), array ('link'));
$bbcode->addCode ('link''callback_replace_single''do_bbcode_url', array (),
                  
'link', array ('listitem''block''inline'), array ('link'));
$bbcode->addCode ('img''usecontent''do_bbcode_img', array (),
                  
'image', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('bild''usecontent''do_bbcode_img', array (),
                  
'image', array ('listitem''block''inline''link'), array ());
$bbcode->setOccurrenceType ('img''image');
$bbcode->setOccurrenceType ('bild''image');
$bbcode->setMaxOccurrences ('image'2);
$bbcode->addCode ('list''simple_replace'null, array ('start_tag' => '<ul>''end_tag' => '[/list]'),
                  
'list', array ('block''listitem'), array ());
$bbcode->addCode ('*''simple_replace'null, array ('start_tag' => '[*]''end_tag' => ''),
                  
'listitem', array ('list'), array ());
$bbcode->setCodeFlag ('*''closetag'BBCODE_CLOSETAG_OPTIONAL);
$bbcode->setCodeFlag ('*''paragraphs'true);
$bbcode->setCodeFlag ('list''paragraph_type'BBCODE_PARAGRAPH_BLOCK_ELEMENT);
$bbcode->setCodeFlag ('list''opentag.before.newline'BBCODE_NEWLINE_DROP);
$bbcode->setCodeFlag ('list''closetag.before.newline'BBCODE_NEWLINE_DROP);
$bbcode->setRootParagraphHandling (true); 
?>
In eine Datei packen und die Includen in meine Funktion ja?
b++ ist offline  
Alt 02.07.2005, 16:30  
Erfahrener Benutzer
 
Registriert seit: 14.04.2005
Beiträge: 1.004
search
Standard

jep habs auch so und funktioniert wunderprächtig

in den funktionen kannst dann schön drauf zugreifen ohne viel bbcode config drin stehen zu haben

greez search
__________________
schlimmer gehts nimmer.... dümmer immer!
search ist offline  
Alt 02.07.2005, 17:03  
b++
Erfahrener Benutzer
 
Registriert seit: 08.08.2007
Beiträge: 181
b++ befindet sich auf einem aufstrebenden Ast
Standard

So hab das geamcht bekomme aber den eroor hier:
Fatal error: Call to a member function on a non-object in /home/htdocs/web4/html/clan/bbcode.php on line 33

Hier meine BBCode.php die dann in meine Funktion includet wird:

PHP-Code:
<?php
    
require_once 'stringparser.class.php';
    require_once 
'stringparser_bbcode.class.php';
       
$bbcode = new StringParser_BBCode ();
    
// Zeilenumbrüche verschiedener Betriebsysteme vereinheitlichen
function convertlinebreaks ($text) {
    return 
preg_replace ("/\015\012|\015|\012/""\n"$text);
}

// Alles bis auf Neuezeile-Zeichen entfernen
function bbcode_stripcontents ($text) {
    return 
preg_replace ("/[^\n]/"''$text);
}

function 
do_bbcode_url ($action$attributes$content$params$node_object) {
    if (
$action == 'validate') {
        return 
true;
    }
    if (!isset (
$attributes['default'])) {
        return 
'[url="'.htmlspecialchars ($content).'"]'.htmlspecialchars ($content).'[/url]';
    }
    return 
'[url="'.htmlspecialchars ($attributes['default']).'"]'.$content.'[/url]';
}

// Funktion zum Einbinden von Bildern
function do_bbcode_img ($action$attributes$content$params$node_object) {
    if (
$action == 'validate') {
        return 
true;
    }
    return 
'[img]'.htmlspecialchars($content).'[/img]';
}


$bbcode->addFilter (STRINGPARSER_FILTER_PRE'convertlinebreaks');

$bbcode->addParser (array ('block''inline''link''listitem'), 'htmlspecialchars');
$bbcode->addParser (array ('block''inline''link''listitem'), 'nl2br');
$bbcode->addParser ('list''bbcode_stripcontents');

$bbcode->addCode ('b''simple_replace'null, array ('start_tag' => '[b]''end_tag' => '[/b]'),
                  
'inline', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('i''simple_replace'null, array ('start_tag' => '[i]''end_tag' => '[/i]'),
                  
'inline', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('url''usecontent?''do_bbcode_url', array ('usecontent_param' => 'default'),
                  
'link', array ('listitem''block''inline'), array ('link'));
$bbcode->addCode ('link''callback_replace_single''do_bbcode_url', array (),
                  
'link', array ('listitem''block''inline'), array ('link'));
$bbcode->addCode ('img''usecontent''do_bbcode_img', array (),
                  
'image', array ('listitem''block''inline''link'), array ());
$bbcode->addCode ('bild''usecontent''do_bbcode_img', array (),
                  
'image', array ('listitem''block''inline''link'), array ());
$bbcode->setOccurrenceType ('img''image');
$bbcode->setOccurrenceType ('bild''image');
$bbcode->setMaxOccurrences ('image'2);
$bbcode->addCode ('list''simple_replace'null, array ('start_tag' => '<ul>''end_tag' => '[/list]'),
                  
'list', array ('block''listitem'), array ());
$bbcode->addCode ('*''simple_replace'null, array ('start_tag' => '[*]''end_tag' => ''),
                  
'listitem', array ('list'), array ());
$bbcode->setCodeFlag ('*''closetag'BBCODE_CLOSETAG_OPTIONAL);
$bbcode->setCodeFlag ('*''paragraphs'true);
$bbcode->setCodeFlag ('list''paragraph_type'BBCODE_PARAGRAPH_BLOCK_ELEMENT);
$bbcode->setCodeFlag ('list''opentag.before.newline'BBCODE_NEWLINE_DROP);
$bbcode->setCodeFlag ('list''closetag.before.newline'BBCODE_NEWLINE_DROP);
$bbcode->setRootParagraphHandling (true);
?>
b++ ist offline  
Alt 02.07.2005, 18:23  
b++
Erfahrener Benutzer
 
Registriert seit: 08.08.2007
Beiträge: 181
b++ befindet sich auf einem aufstrebenden Ast
Standard

Kann mir neimand heflen?
b++ ist offline  
Alt 02.07.2005, 19:38  
Erfahrener Benutzer
 
Registriert seit: 14.04.2005
Beiträge: 1.004
search
Standard

mein gott...
pack deine config für die class, soll heissen alle funktionen und den krams der den text bearbeitet in eine .php datei

PHP-Code:
<?php
include("./class/stringparser_bbcode.class.php");
$bbcode = new StringParser_BBCode (); // objekt erzeugen
include("./class/bbcode_parsen.php"); // config
$text $bbcode->parse ($text); // durch parser jagen
?>
feddisch
__________________
schlimmer gehts nimmer.... dümmer immer!
search ist offline  
Alt 03.07.2005, 04:02  
b++
Erfahrener Benutzer
 
Registriert seit: 08.08.2007
Beiträge: 181
b++ befindet sich auf einem aufstrebenden Ast
Standard

Hmm hab des jetzt so gemacht wie du das sagtest aber wenn ich eingebe:
TEST [b"]TEST[/b"]

kommt nur das als ausgabe:


TEST [b"]TEST[/b"]

</p>
Ohne anführungs zeichen natürlich
b++ ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Problem mit BBcode [ img ] Kein Genie PHP Tipps 2006 23 29.09.2006 14:59
BBCode - Tag verschachteln, Problem mit Reihenfolge. horstenpeter PHP Tipps 2006 4 21.08.2006 12:33
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
bbcode problem Freeaak PHP-Fortgeschrittene 8 03.05.2006 21:27
BBCode mit eregi_replace(); ändert nur letztes Vorkommen Blank PHP Tipps 2006 6 12.04.2006 14:58
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
BBCode Realisierung - Code Andun PHP-Fortgeschrittene 10 18.12.2005 21:09
[Erledigt] Problem mit BBCode PHP Tipps 2007 6 30.11.2005 17:26
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
stringparser bbcode paragraphs, stringparser_bbcode usecontent?, stringparser_bbcode url blank, christian-seiler callback_replace_single -christian-seiler.de, stringparser_bbcode einbinden, html to bbcode php, image function bb code in php, addparser stringparser_filter_pre, stringparser_bbcode url

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.