kostenloser Webspace werbefrei: lima-city


Probleme mit BBCodes

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    n********r

    Hi,

    ich habe eine Problem mit meinem Script.
    Ich rufe so meine bbcodes Funktion auf:

    include("bbcodes.php");


    und so sieht es aus:

    <?php
    function replacetags($eintrag)
    {
    while ((strpos($eintrag,"[url=http://")>-1) && (strpos($eintrag,"[/url]")>-1))
    {
     $startpos=strpos($eintrag,"[url=http://")+5;
     $endpos=strpos($eintrag,"]",$startpos);
     $url=substr($eintrag,$startpos,$endpos-$startpos);
     $startpos=$endpos+1;
     $endpos=strpos($eintrag,"[/url]",$startpos);
     $urltext=substr($eintrag,$startpos,$endpos-$startpos);
     $codestring='[url=http://'.$url.']'.$urltext.'[/url]';
     $eintragstring='<a href="'.$url.'">'.$urltext.'</a>';
     $eintrag=str_replace($codestring,$eintragstring,$eintrag);
    }
    while ((strpos($eintrag,"[b]")>-1) && (strpos($eintrag,"[/b]")>-1))
    {
     $startpos=strpos($eintrag,"[b]")+3;
     $endpos=strpos($eintrag,"[/b]",$startpos);
     $eintrag=substr($eintrag,$startpos,$endpos-$startpos);
     $codestring='[b]'.$eintrag.'[/b]';
     $eintragstring='<b>'.$eintrag.'</b>';
     $eintrag=str_replace($codestring,$eintragstring,$eintrag);
    }
    while ((strpos($eintrag,"[i]")>-1) && (strpos($eintrag,"[/i]")>-1))
    {
     $startpos=strpos($eintrag,"[i]")+3;
     $endpos=strpos($eintrag,"[/i]",$startpos);
     $eintrag=substr($eintrag,$startpos,$endpos-$startpos);
     $codestring='[i]'.$eintrag.'[/i]';
     $eintragstring='<i>'.$eintrag.'</i>';
     $eintrag=str_replace($codestring,$eintragstring,$eintrag);
    }
    while ((strpos($eintrag,"[u]")>-1) && (strpos($eintrag,"[/u]")>-1))
    {
     $startpos=strpos($eintrag,"[u]")+3;
     $endpos=strpos($eintrag,"[/u]",$startpos);
     $eintrag=substr($eintrag,$startpos,$endpos-$startpos);
     $codestring='[u]'.$eintrag.'[/u]';
     $eintragstring='<u>'.$eintrag.'</u>';
     $eintrag=str_replace($codestring,$eintragstring,$eintrag);
    }
    //mein erster versuch
    while ((strpos($eintrag,"[img]http://")>-1) && (strpos($eintrag,"[/img]")>-1))
    {
     $startpos=strpos($eintrag,"[img]http://")+5;
     $endpos=strpos($eintrag,"[/img]",$startpos);
     $eintrag=substr($eintrag,$startpos,$endpos-$startpos);
     $codestring='[img]http://'.$eintrag.'[/img]';
     $eintragstring='<img src="'.$eintrag.'" border="0" >';
     $eintrag=str_replace($codestring,$eintragstring,$eintrag);
    }
    
    $eintrag = preg_replace("/\[img\](.*)\[\/img\]/isUe", "imagelink('\\1')", $eintrag);
    
    return $eintrag;
    }
    
    function imagelink($url) {
        $maxwidth = 400;
        $maxheight = 300;
        $imgsize = getimagesize($url);
        $imgsize = explode("\"", $imgsize[3]);
        $imgwidth = $imgsize[1];
        $imgheight = $imgsize[3];
    
        if ( ($imgwidth > $maxwidth) OR ($imgheight > $maxheight) ) {
            $t = true;
            $width = $maxwidth;
            $height = $maxheight;
        }
    
        if ($t == true) {
            $img_link = "<a href=\"".$url."\"><img src=\"" .$url ."\" style=\"width: ".$width."px; height: ".$height."px; \" /></a>";
        } else {
            $img_link = "<img src=\"" .$url ."\" />";
        }
    
    
        return $img_link;
    }
    ?>

    Aber leider funktioniert es nicht...
    Kann mri einer sagen warum?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. r*****r

    machs doch mit hilfe der funktion:


    preg_replace

    http://de.php.net/manual/de/function.preg-replace.php
  4. Autor dieses Themas

    n********r

    nein ich will es leiber mit der Funktion von mir machen

  5. nein ich will es leiber mit der Funktion von mir machen

    K?nntest du vllt sagen, was nicht geht?
    Wird einfach kein BB-Code ersetzt oder wird gar nichts zur?ck gegeben etc.?
    Au?erdem sag doch mal, was du schon alles ausprobiert hast! Schlie?lich kann man ja von dir erwarten, dass du dir wenigstens Gedanken ?ber m?gliche Fehlerquellen etc. machst.

    MfG Lucas
  6. Autor dieses Themas

    n********r

    also es wird mir der PHP Code so wieder geben wi er eingeben wird.
    Ich wei? nciht warum ich denke das die seite nicht richtig aufgerufen wird...
  7. k**********e

    wenn du die function aufrufen kannst dann wird die datei scho richtig eingebunden, denn sonst g?be es die function nicht... (Fatal error^^)

    wenn der string 'unber?hrt' wieder ausgegeben wird.. bedeutet das, dass die whiles NIE wahr werden/sind und der code innen nicht ausgef?hrt wird.


    wenn du bei der function bleiben willst... dann musst du dich schon zeile f?r zeile bis zum 'fehler' vorarbeiten.

    und da du ich deiner function auch auf preg_replace str_repalce
    'zur?ckgreifst'...
    warum nicht per preg_mach(_all) suchen?
    dann das was du da macht ist... ?hm... na ja^^
  8. Autor dieses Themas

    n********r

    wie kann ich mit preg_replace meine bbcodes machen?
    ich meine ohne soviel Code, geht es einfacher?
  9. r*****r

    fertiger code:


    <?php
    function html($string) {
    $string = ereg_replace("\n", "<br>\n", $string);
    $string = preg_replace("#\[ b\](.+?)\[ /b\]#is", "<b>\\1</b>", $string);
    $string = preg_replace("#\[ i\](.+?)\[/ i\]#is", "<i>\\1</i>", $string);
    $string = preg_replace("#\[ u\](.+?)\[/ u\]#is", "<u>\\1</u>", $string);
    $string = preg_replace("#\[link\]www\.(.+?)\[/link\]#is", "<a href=\"http://www.\\1\" target=\"_blank\">www.\\1</a>", $string);
    $string = preg_replace("#\[link\](.+?)\[/link\]#is", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $string);
    $string = preg_replace("#\[link=(.+?)\](.+?)\[/link\]#is", "<a href=\"\\1\" target=\"_blank\">\\2</a>", $string);
    $string = preg_replace("#\[url\]www\.(.+?)\[/url\]#is", "<a href=\"http://www.\\1\" target=\"_blank\">www.\\1</a>", $string);
    $string = preg_replace("#\[url\](.+?)\[/url\]#is", "<a href=\"\\1\" target=\"_blank\">\\1</a>", $string);
    $string = preg_replace("#\[url=(.+?)\](.+?)\[/url\]#is", "<a href=\"\\1\" target=\"_blank\">\\2</a>", $string);
    global $smiley_folder;
    }
    ?>



    Beitrag ge?ndert am 14.11.2005 20:09 von ruehrer
  10. Autor dieses Themas

    n********r

    und wie genau kann ich diese Funktion aufrufen?
  11. Autor dieses Themas

    n********r

    wenn cih deinen code anwenden sieht mein ergebnis so aus:

    [b>i]
  12. k*****i

    warum probierst du es nicht mal so?

    $post_text = htmlentities($post_text);
    
    	$search[0] = '[ b]';		$replace[0] = '<b>';
    	$search[1] = '[/ b]';		$replace[1] = '</b>';
    	$search[2] = '[ u]';		$replace[2] = '<u>';
    	$search[3] = '[/ u]';		$replace[3] = '</u>';
    	$search[4] = '[ i]';		$replace[4] = '<i>';
    	$search[5] = '[/ i]';		$replace[5] = '</i>';
    	$search[30] = "[url='";		$replace[30] = "<a title='Externer Link! Betreten auf eigene Gefahr!' href='";
    	$search[31] = "']";		$replace[31] = "' target='_blank'>";
    	$search[32] = "[/url]";		$replace[32] = "</a>";
    
    	$post_text = str_replace($search, $replace, $post_text);
    	$post_text = nl2br($post_text);



    MfG

    Kraeusi


    Ps.:

    newwarrior schrieb:
    wenn cih deinen code anwenden sieht mein ergebnis so aus:

    [b>i]


    s d?rfte eigentlich maximal [b>b] erscheinen

    edit: die [ u] und so ohne leerzeichen, lima interpretiert sie sonst!

    Beitrag ge?ndert am 15.11.2005 05:44 von kraeusi
  13. Autor dieses Themas

    n********r

    habe ich alles gemacht und trotzdem wird mir jetzt von meinem Beitrag nur der erste Buchstabe ausgeben:

    hier mal der Code von der ganzen Seite:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      <meta http-equiv="Content-Language" content="de">
      <meta http-equiv="Pragma" content="no-cache">
      <meta http-equiv="Cache-Control" content="no-cache">
      <meta name="Description" content="Jugendgruppe der EFG - Westerstede">
      <meta name="Keywords" content="jesus baptiste glaube westerstede bund gott bible jugend jugendgruppe">
      <meta name="author" content="Malte Kiefer">
      <meta name="Title" content="Malte Kiefer">
      <meta name="Publisher" content="Malte Kiefer">
      <meta name="Copyright" content="Malte Kiefer.">
      <meta name="Revisit-after" content="1 Days">
      <meta name="Audience" content="alle">
      <meta name="Language" content="de">
      <meta name="Generator" content="Gezaubert von Malte Kiefer.">
    <title>Jugendgruppe der EFG - Westerstede</title>
    <link rel="stylesheet" type="text/css" href="design/design.css">
    </head>
    <body>
    <div id="main">
     <div id="title" >
     <br><br><br><br>
     <br><br><br><br>
     <br>
     </div>
    
     <div id="left">
     <div class="menu_title menu_rot menublock">Jugend</div>
              <div class="menu_blau menublock">
                <a href="index.html" class='menuitem'>Startseite</a><br>
                <a href="news.html" class='menuitem'>News</a><br>
                <a href="termine.html" class='menuitem'>Termine</a><br>
                <a href="aktionen.html" class='menuitem'>Aktionen</a><br>
                <a href="mitarbeiter.html" class='menuitem'>Mitarbeiter</a><br>
                <a href="jugend.html" class='menuitem'>Jugend</a><br>
              </div>
    
    <div class="menu_title menu_rot menublock">Interaktiv</div>
              <div class="menu_orange2 menublock">
                <a href="galerie.html" class='menuitem'>Galerien</a><br>
                <a href="gbook.php" class='menuitem'>G?stebuch</a><br>
                <a href="forum/forum.php" class='menuitem'>Forum</a><br>
              </div>
    
    <div class="menu_title menu_rot menublock">Infos</div>
              <div class="menu_orange menublock">
                <a href="anfahrt.html" class='menuitem'>Anfahrt</a><br>
                <a href="links.html" class='menuitem'>Links</a><br>
                <a href="impressum.html" class='menuitem'>Impressum</a><br>
    
              </div>
    
    
    <p>
      <a href="http://www.validome.org/referer">
        <img border="0"
             src="http://www.validome.org/images/set5/valid_html_4_0_1.gif"
             alt="Valid HTML 4.01" width="80" height="15">
      </a>
    </p>
    
     </div>
    
     <div id="content">
    	<center><h2><i><u>G?stebuch</u></i></h2></center>
    	<p align="right"><a href="new_entry.php"><b>Neuer Eintrag</b></a></p>
    				<?php
    
    				include ('verbindung.php');
    				include ('seiten_trenner.php');
    
    				$sql = "SELECT * FROM gbook ORDER BY date DESC LIMIT $start,$limit";
    				$result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);
    				while ($read = mysql_fetch_array($result)) {
    				$name[] = $read["name"];
    				$email[] = $read["email"];
    				$date[] = $read["date"];
    				$eintrag[] = $read["eintrag"];
    				}
    				if (isset($eintrag))
    				{
    				$eintrag = str_replace(":angry:", "<img border=\"0\" src=\"smilies/angry.gif\">", $eintrag);
    				$eintrag = str_replace(":cool1:", "<img border=\"0\" src=\"smilies/cool1.gif\">", $eintrag);
    				$eintrag = str_replace(":coolgun:", "<img border=\"0\" src=\"smilies/coolgun.gif\">", $eintrag);
    				$eintrag = str_replace(":dozey:", "<img border=\"0\" src=\"smilies/dozey.gif\">", $eintrag);
    				$eintrag = str_replace(":fuyou:", "<img border=\"0\" src=\"smilies/fuyou.gif\">", $eintrag);
    				$eintrag = str_replace(":fuyou_2:", "<img border=\"0\" src=\"smilies/fuyou_2.gif\">", $eintrag);
    				$eintrag = str_replace(":icon_cheesygrin:", "<img border=\"0\" src=\"smilies/icon_cheesygrin.gif\">", $eintrag);
    				$eintrag = str_replace(":icon_confused:", "<img border=\"0\" src=\"smilies/icon_confused.gif\">", $eintrag);
    				$eintrag = str_replace(":icon_eek:", "<img border=\"0\" src=\"smilies/icon_eek.gif\">", $eintrag);
    				$eintrag = str_replace(":icon_lol:", "<img border=\"0\" src=\"smilies/icon_lol.gif\">", $eintrag);
    				$eintrag = str_replace(":icon_neutral:", "<img border=\"0\" src=\"smilies/icon_neutral.gif\">", $eintrag);
    				$eintrag = str_replace(":icon_redface:", "<img border=\"0\" src=\"smilies/icon_redface.gif\">", $eintrag);
    				$eintrag = str_replace(":wallbash:", "<img border=\"0\" src=\"smilies/wallbash.gif\">", $eintrag);
    				$eintrag = str_replace(":thumbup:", "<img border=\"0\" src=\"smilies/thumbup.gif\">", $eintrag);
    				
    
    
    
        $search[0] = '[ b]';        $replace[0] = '<b>';
    
        $search[1] = '[ /b]';        $replace[1] = '</b>';
    
        $search[2] = '[ u]';        $replace[2] = '<u>';
    
        $search[3] = '[/ u]';        $replace[3] = '</u>';
    
        $search[4] = '[ i]';        $replace[4] = '<i>';
    
        $search[5] = '[/ i]';        $replace[5] = '</i>';
    
        $search[30] = "[url='";        $replace[30] = "<a title='Externer Link! Betreten auf eigene Gefahr!' href='";
    
        $search[31] = "']";        $replace[31] = "' target='_blank'>";
    
        $search[32] = "[/url]";        $replace[32] = "</a>";
    
    
    
        $eintrag = str_replace($search, $replace, $eintrag);
    
        $eintrag = nl2br($eintrag);
    				for ($i = 0; $i < count($eintrag); $i++) {
    
    				?>
    				<table class="gbook" width="100%" >
    				<tr>
    				<td width="33%">
    				<i>Name:</i> <?php echo stripslashes(nl2br($name[$i])); ?></td>
    				<td><i>Eintrag vom:</i> <?php echo date("d.m ; h:i",$date[$i]);?></td>
    
    				</tr>
    				</table>
    				<table class="inhalt" width="100%">
    				<tr>
    				<td width="100%">
    				<?php echo "<br>".stripslashes(nl2br($eintrag[$i]))."<br><br>"; ?>
    				</td>
    				</tr>
    				</table>
    				<br>
    				<?php
    				}
    
    				include ('seiten.php');
    				}
    				?>
    <br><br>
    </div>
     <br style="clear:both;">
    </div>
    </body>
    </html>


    Beitrag ge?ndert am 15.11.2005 06:31 von newwarrior

  14. also es wird mir der PHP Code so wieder geben wi er eingeben wird.
    Ich wei? nciht warum ich denke das die seite nicht richtig aufgerufen wird...

    Du meinst HTML Code, oder?
    Ok, jetzt wissen, wir was nicht geht.



    kirschbluete schrieb:
    [...]
    wenn du bei der function bleiben willst... dann musst du dich schon zeile f?r zeile bis zum 'fehler' vorarbeiten.
    [...]

    Genau, am besten in jede zweite Zeile "print ( __LINE__ );" schreiben, dann siehst du, welche Zeilen nicht "benutzt" werden.



    newwarrior schrieb:
    und wie genau kann ich diese Funktion aufrufen?

    Eine Funktion ruft man so auf :
    $rueckgabewert = functionsname ( $parameter );

    Das kann nat?rlich ein wenig varieren. ;-)



    kraeusi schrieb:
    warum probierst du es nicht mal so?

    $post_text = htmlentities($post_text);
    
    	$search[0] = '[ b]';		$replace[0] = '<b>';
    	$search[1] = '[/ b]';		$replace[1] = '</b>';
    	$search[2] = '[ u]';		$replace[2] = '<u>';
    	$search[3] = '[/ u]';		$replace[3] = '</u>';
    	$search[4] = '[ i]';		$replace[4] = '<i>';
    	$search[5] = '[/ i]';		$replace[5] = '</i>';
    	$search[30] = '[url='';		$replace[30] = '<a title='Externer Link! Betreten auf eigene Gefahr!' href='';
    	$search[31] = '']';		$replace[31] = '' target='_blank'>';
    	$search[32] = '[/url]';		$replace[32] = '</a>';
    
    	$post_text = str_replace($search, $replace, $post_text);
    	$post_text = nl2br($post_text);


    [...]

    Ach kraeusi. -.-
    Was passiert, wenn jemand "[ b]" eingibt? Also ohne das schlie?ende BB-Code-tag (wird "BB-Code" gro? oder klein geschrieben???).

    @newwarrior :
    Jetzt poste doch nicht den gesamten HTML Quelltext. -.-
    Schneide das wichtigste raus, dann kann man dir viel schneller bzw. ?berhaupt helfen, denn ich habe keine Lust mir den Quelltext anzugucken.


    Eine fertige BB-Code Funktion (gr??tenteils von mir) findest du hier :
    http://wiki4you.de/index.php/BBCode:php
    Sollten dort Fehler auftreten, dann m?sste es an dir liegen. :P

    MfG Lucas


    edit :
    Das mit dem [ b] ohne das schlie?ende tag funtzt ja sogar hier. Oh man lord....

    Beitrag ge?ndert am 15.11.2005 08:52 von lucas9991
  15. Autor dieses Themas

    n********r

    ok Fehler gefunden,


    Beitrag ge?ndert am 15.11.2005 10:55 von newwarrior

  16. ok Fehler gefunden,


    Beitrag ge?ndert am 15.11.2005 10:55 von newwarrior

    Wo liegt er denn?
    Es w?re vllt auch f?r andere hilfreich, au?erdem k?nntest du dann auch den Code posten...

    MfG Lucas
  17. Autor dieses Themas

    n********r

    Danke endlich geht alles

    ich habe einen Fehler gemacht als ich deinen Code genommen habe. Jetzt geht es aber ich hatte einfach statt $ das geschrieben &

    Beitrag ge?ndert am 15.11.2005 11:15 von newwarrior
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!