Antworten auf deine Fragen:
Neues Thema erstellen

bbcode problem

A

aydesign

Guest

Hallo zusammen,

hab das bbcode Tutorial von hier ausprobiert: http://alice-grafixx.de/PHP-MYSQL-Tutorial/BBCode-176
Aber es kommt bei mir immer dieser Fehler: Parse error: syntax error, unexpected ';' in /home/www/cwcity/hosting/a/y/aydesign/htdocs/data/bbcode.php on line 106

Das ist der Code:
PHP:
    $offset = 0;
    while(($pos = strpos($bb, '[code]0[/code]', $pos);
        if($end === false) break;
        $code = substr($bb, $pos + 6, $end - ($pos + 6));
        $strlen = strlen($code) + 13;
        $code = '<pre>'.str_replace('', '', $code).'</pre>';
        $end += 7;
        $offset = $end - ($strlen - strlen($code));
        $bb = substr_replace($bb, $code, $pos, $end - $pos);
    }
(Fehlerhafte Zeile ist die zweite - while(........)


Hoffe dass jemand weiter weiß...

Mfg ;)

Andy
 

cebito

undefined

AW: bbcode problem

Schau dir mal die anderen Schleifen im Tut an, die werden (üblicherweise ;) ) mit einer geschweiften Klammer eingeleitet. Der Tutschreiber scheint indes ziemlich von sich eingenommen, in den Kommentaren wird dieser Fehler angemerkt, was er mit einem "bei mir funktionierts" abtut. In dieser Zeile befinden sich im übrigen auch noch zwei öffnende Klammern, die nicht geschlossen sind.
 
A

aydesign

Guest

AW: bbcode problem

Hi, hab noch ein Problem :p

Der bbcode und wichtiger die Zeilenumbrüche werden mir einfach nicht angezeigt.

PHP:
$message=strip_tags($gettopic3['post']);
$message=nl2br($message);
$message=bbcode($message);

    echo "$message<hr><br />";
    echo "</td></tr>";

So wird der Beitrag wiedergegeben, aber es passiert nichts.
So wird mir Text angezeigt:
.....................
hallo\r\nunterstrichen\r\n
.....................

Wollte: hallo und unterstrichen mit Zeilenumbruch schreiben, aber so spuckt er mir es dann aus.

Mfg Andy
 

Doitsu

Aktives Mitglied

AW: bbcode problem

Poste mal bitte deinen ganzen Code, vor allem was bei der Funktion 'bbcode' gemacht wird. Und gebe dir mal mit var_dump($message); den Inhalt aus und schau ab welcher stelle die '\r\n' drin sind.
 

lachender_engel

Aktives Mitglied

AW: bbcode problem

Hier werden zu viele Klammern geöffnet und nicht geschlossen.
Das hier dürfte die Lösung sein:
PHP:
while($pos = strpos($bb, '[code]0[/code]', $pos));
 
A

aydesign

Guest

AW: bbcode problem

Hi,

also das hier ist mein bbcode: (hab ihn noch a bissl umgeschrieben aber geht trotzdem nicht)

PHP:
<?php

    error_reporting(E_ALL); 
    function BBCode($Text)
    {
    $Text = str_replace("<", "&lt;", $Text);
    $Text = str_replace(">", "&gt;", $Text);
    $URLSearchString = " a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'";
    $MAILSearchString = $URLSearchString . " a-zA-Z0-9\.@";
            if (substr($Text,0, 7) == "http://"){
    $Text = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", "<a href=\"\\1://\\2\\3\">\\1://\\2\\3</a>", $Text);
    $Text = nl2br($Text);
            } else { 
    $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/", '<a href="javascript:go(\'$1\',\'new\')">$1</a>', $Text);
    $Text = preg_replace("(\[url\=([$URLSearchString]*)\](.+?)\[/url\])", '<a href="javascript:go(\'$1\',\'new\')">$2</a>', $Text);
    $Text = nl2br($Text);
            }
    $Text = preg_replace("(\[mail\]([$MAILSearchString]*)\[/mail\])", '<a href="mailto:$1">$1</a>', $Text);
    $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.+?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
    $Text = preg_replace("(\[b\](.+?)\[\/b])is",'<span class="bold">$1</span>',$Text);
    $Text = preg_replace("(\[i\](.+?)\[\/i\])is",'<span class="italics">$1</span>',$Text);
    $Text = preg_replace("(\[u\](.+?)\[\/u\])is",'<span class="underline">$1</span>',$Text);
    $Text = preg_replace("(\[s\](.+?)\[\/s\])is",'<span class="strikethrough">$1</span>',$Text);
    $Text = preg_replace("(\[o\](.+?)\[\/o\])is",'<span class="overline">$1</span>',$Text);
    $Text = preg_replace("(\[color=(.+?)\](.+?)\[\/color\])is","<span style=\"color: $1\">$2</span>",$Text);
    $Text = preg_replace("(\[size=(.+?)\](.+?)\[\/size\])is","<span style=\"font-size: $1px\">$2</span>",$Text);
    $Text = preg_replace("/\
[list\](.+?)\[\/list\]/is", '<ul class="listbullet">$1</ul>' ,$Text);
    $Text = preg_replace("/\
[list=1\](.+?)\[\/list\]/is", '<ul class="listdecimal">$1</ul>' ,$Text);
    $Text = preg_replace("/\
[list=i\](.+?)\[\/list\]/s", '<ul class="listlowerroman">$1</ul>' ,$Text);
    $Text = preg_replace("/\
[list=I\](.+?)\[\/list\]/s", '<ul class="listupperroman">$1</ul>' ,$Text);
    $Text = preg_replace("/\
[list=a\](.+?)\[\/list\]/s", '<ul class="listloweralpha">$1</ul>' ,$Text);
    $Text = preg_replace("/\
[list=A\](.+?)\[\/list\]/s", '<ul class="listupperalpha">$1</ul>' ,$Text);
    $Text = str_replace("
[*]", "<li>", $Text);
    $Text = preg_replace("(\[font=(.+?)\](.+?)\[\/font\])","<span style=\"font-family: $1;\">$2</span>",$Text);
    
    $Text = str_replace(':P', '<img src="../layout/smileys/000.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(':)', '<img src="../layout/smileys/001.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(';)', '<img src="../layout/smileys/002.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(':(', '<img src="../layout/smileys/003.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('*grr*', '<img src="../layout/smileys/004.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('0.o', '<img src="../layout/smileys/005.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('*_*', '<img src="../layout/smileys/006.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('._.', '<img src="../layout/smileys/007.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('-.-', '<img src="../layout/smileys/008.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(':D', '<img src="../layout/smileys/009.gif" width="15" height="14" border="0">', $Text);
    
    return $Text;
}

?>
und das hier das Script wo ich ihn einbinden will

PHP:
<?php 

include "config.php";
include "../data/bbcode.php";

$id=$_GET['id'];

    echo "[ <A href='test.php'>Zurück zum Index</a>&nbsp;&nbsp;|&nbsp;&nbsp;<A href='post.php'>Neues Thema</a> ]<br /><br />";
    echo "<table width='750' class='designtable'>";
    echo "<tr><td width=20%><h1>Autor</h1></td><td width=80%><h1>Frage / Antworten</h1></td></tr>";

$gettopic="SELECT * from test where postid='$id'";
$gettopic2=mysql_query($gettopic) or die("Kein Thema gefunden.");
$gettopic3=mysql_fetch_array($gettopic2);

    echo "<tr class='mainrow'><td valign='top'><strong><u>$gettopic3[author]</u></strong></td><td vakign='top'>Letzte Antwort: $gettopic3[showtime]<br><hr>";

$message=strip_tags($gettopic3['post']);
$message=BBCode($message);

    echo "$message<hr><br />";
    echo "</td></tr>";

$getreplies="Select * from test where parentid='$id' order by postid desc";
$getreplies2=mysql_query($getreplies) or die("Keine Antworten vorhanden!");

while($getreplies3=mysql_fetch_array($getreplies2))

{

   echo "<tr class='mainrow'><td valign='top'><strong><u>$getreplies3[author]</u></strong></td><td vakign='top'>Letzte Antwort: $getreplies3[showtime]<br><hr>";

   $message=strip_tags($getreplies3['post']);
   $message=BBCode($message);

   echo "$message<hr><br />";
   echo "</td></tr>";

}

    echo "</table>";

?>
habs auch schon mit

PHP:
   $message=strip_tags($getreplies3['post']);
 $message=nl2br($message);
   $message=BBCode($message);
Den Code möchte ich bei mehreren Scripte verwenden, aber komischerweise funktioniert nur die Umwandlung der Smilies funktion und bei meinem Kommentar Script der Zeilenumbruch. Aber bei diesem Script hier funktioniert nichtmal der Umbruch. Und die Möglichkeit Text zu formatieren funktioniert bei keinem Script.

Hab bei diesem Script hier, auch schon probiert den Zeilenumbruch ohne BBCode nur mit nl2br zu machen, aber es funtkioniert einfach nicht. :motz:

Hoffe dass jemand weiter weiß!

Mfg
Andy
 

Doitsu

Aktives Mitglied

AW: bbcode problem

Die meisten regex Befehle sind falsch, mach mal ini_set('display_errors', 1); unter das error_reporting.
Du startest den regex Befehl nicht mit einen gueltigen delimiter (ich benutze immer # - man erkennt ihn sofort, da er selten innerhalb eines Befehls auftaucht, dein Slash ist aber auch ok - aber die Klammer kann nicht benutzt werden, und selbst wenn, muesste es 2x die gleiche sein, nicht vorne oeffnen und hinten schliessen).

also z.B.
Code:
preg_replace("#\[o\](.+?)\[\/o\]#is",'<span class="overline">$1</span>',$Text);

Warum die Zeilenumbrueche nicht richtig angezeigt werden kann ich dir jetzt nicht sagen, da muesstest du wirklich mal mit var_dump rumgehen und gucken ab wann diese falsch sind.
 
Zuletzt bearbeitet:
A

aydesign

Guest

AW: bbcode problem

also das wird als Fehler angezeigt wenn ich - var_dump - anzeigen lasse:

Parse error: syntax error, unexpected T_ECHO in /home/www/cwcity/hosting/a/y/aydesign/htdocs/askme/message.php on line 23

die Zeile 23 ist:

echo "$message<hr><br />";
 
A

aydesign

Guest

AW: bbcode problem

ok, hab bei var_dump ein ; vergessen :)

Das wird mir dann als Text ausgegeben: string(83) "test\r\n\r\n " test\r\n\r\n

ursprünglich wollte ich zweimal -test- schreiben mit zeilenumbruch
 

Doitsu

Aktives Mitglied

AW: bbcode problem

Na ja. du sollst das var_dump an mehreren Stellen ausgeben, damit du siehst, ab wann die '\r\n' drin stehen..

PHP:
<?
function BBCode($Text)
{
    echo '<pre>start > ';
    var_dump($Text);
    $Text = str_replace("<", "&lt;", $Text);
    $Text = str_replace(">", "&gt;", $Text);
    $URLSearchString = " a-zA-Z0-9\:\/\-\?\&\.\=\_\~\#\'";
    $MAILSearchString = $URLSearchString . " a-zA-Z0-9\.@";
    if (substr($Text, 0, 7) == "http://")
    {
        $Text = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", "<a href=\"\\1://\\2\\3\">\\1://\\2\\3</a>", $Text);
        $Text = nl2br($Text);
    }
    else
    {
        $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/", '<a href="javascript:go(\'$1\',\'new\')">$1</a>', $Text);
        $Text = preg_replace("(\[url\=([$URLSearchString]*)\](.+?)\[/url\])", '<a href="javascript:go(\'$1\',\'new\')">$2</a>', $Text);
        $Text = nl2br($Text);
    }

    echo '<hr />1 > ';
    var_dump($Text);
    $Text = preg_replace("(\[mail\]([$MAILSearchString]*)\[/mail\])", '<a href="mailto:$1">$1</a>', $Text);
    $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.+?)\[\/mail\]/", '<a href="mailto:$1">$2</a>', $Text);
    $Text = preg_replace("(\[b\](.+?)\[\/b])is", '<span class="bold">$1</span>', $Text);
    $Text = preg_replace("(\[i\](.+?)\[\/i\])is", '<span class="italics">$1</span>', $Text);
    $Text = preg_replace("(\[u\](.+?)\[\/u\])is", '<span class="underline">$1</span>', $Text);
    $Text = preg_replace("(\[s\](.+?)\[\/s\])is", '<span class="strikethrough">$1</span>', $Text);
    $Text = preg_replace("(\[o\](.+?)\[\/o\])is", '<span class="overline">$1</span>', $Text);
    $Text = preg_replace("(\[color=(.+?)\](.+?)\[\/color\])is", "<span style=\"color: $1\">$2</span>", $Text);
    $Text = preg_replace("(\[size=(.+?)\](.+?)\[\/size\])is", "<span style=\"font-size: $1px\">$2</span>", $Text);
    $Text = preg_replace("/\[list\](.+?)\[\/list\]/is", '<ul class="listbullet">$1</ul>', $Text);
    $Text = preg_replace("/\[list=1\](.+?)\[\/list\]/is", '<ul class="listdecimal">$1</ul>', $Text);
    $Text = preg_replace("/\[list=i\](.+?)\[\/list\]/s", '<ul class="listlowerroman">$1</ul>', $Text);
    $Text = preg_replace("/\[list=I\](.+?)\[\/list\]/s", '<ul class="listupperroman">$1</ul>', $Text);
    $Text = preg_replace("/\[list=a\](.+?)\[\/list\]/s", '<ul class="listloweralpha">$1</ul>', $Text);
    $Text = preg_replace("/\[list=A\](.+?)\[\/list\]/s", '<ul class="listupperalpha">$1</ul>', $Text);
    $Text = str_replace("[*]", "<li>", $Text);
    $Text = preg_replace("(\[font=(.+?)\](.+?)\[\/font\])", "<span style=\"font-family: $1;\">$2</span>", $Text);

    echo '<hr />2 > ';
    var_dump($Text);

    $Text = str_replace(':P', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/000.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(':)', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/001.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(';)', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/002.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(':(', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/003.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('*grr*', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/004.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('0.o', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/005.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('*_*', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/006.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('._.', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/007.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace('-.-', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/008.gif" width="15" height="14" border="0">', $Text);
    $Text = str_replace(':D', '<img src="http://www.psd-tutorials.de/forum/layout/smileys/009.gif" width="15" height="14" border="0">', $Text);

    echo '<hr />end > ';
    var_dump($Text);
    return $Text;
}
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.484
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben