Seite 1 von 1

BBCode [php] - Leerzeilen am anfang/ende vermeiden?

Verfasst: 13.09.2003 15:11
von KoSSo
Hi,
ich habe den [php]-bbcode in mein board eingebaut leider habe ich damit ein kleines problem und zwar wird am anfang und am ende jeweils eine leerzeile hinzugefügt.

Hat irgendjemand eine idee wie man das verhindern kann?

Grüße KoSSo

Verfasst: 13.09.2003 16:08
von D@ve
:-?

???

Wie hast Du das denn eingebaut? Das ist doch schon drin?

Gruß, Dave

Verfasst: 13.09.2003 16:42
von KoSSo
Lies mal den Beitrag das was du meinst ist der

Code: Alles auswählen

-bbcode..... [php]-bbcode = PHP Syntax Highlighter

KoSSo

Verfasst: 14.09.2003 13:38
von KoSSo
Niemand ne idee wie ich die leerzeilen wegbekommen kann?????? :cry:

Ich habe schon versucht die \n bei diesem teil zu entfernen (bei dem rot markierten):
function bbencode_second_pass_php($text, $uid, $bbcode_tpl)
{
global $lang;

$html_entities_match = array("#<#", "#>#");
$html_entities_replace = array("<", ">");

$code_start_html = $bbcode_tpl['php_open'];
$code_end_html = $bbcode_tpl['php_close'];

// First, do all the 1st-level matches. These need an htmlspecialchars() run,
// so they have to be handled differently.
$match_count = preg_match_all("#\[php:1:$uid\](.*?)\[/php:1:$uid\]#si", $text, $matches);

for ($i = 0; $i < $match_count; $i++)
{
$before_replace = $matches[1][$i];
$after_replace = $matches[1][$i];

$after_replace = preg_replace($html_entities_match, $html_entities_replace, $after_replace);

// Replace 2 spaces with "&nbsp; " so non-tabbed code indents without making huge long lines.
$after_replace = str_replace(" ", "&nbsp; ", $after_replace);
// now Replace 2 spaces with " &nbsp;" to catch odd #s of spaces.
$after_replace = str_replace(" ", " &nbsp;", $after_replace);

// Replace tabs with "&nbsp; &nbsp;" so tabbed code indents sorta right without making huge long lines.
$after_replace = str_replace("\t", "&nbsp; &nbsp;", $after_replace);

$str_to_match = "[php:1:$uid]" . $before_replace . "[/php:1:$uid]";

$replacement = $code_start_html;
$after_replace = str_replace('<', '<', $after_replace);
$after_replace = str_replace('>', '>', $after_replace);
if (substr($after_replace, 0, 2) != '<?' && strpos($after_replace, '<?') == FALSE)
{
$after_replace = "<?\n$after_replace\n?>";
$added = TRUE;
}
ob_start();
highlight_string($after_replace);
$after_replace = ob_get_contents();
ob_end_clean();
$replacement .= $after_replace;
$replacement .= $code_end_html;

$text = str_replace($str_to_match, $replacement, $text);
}

// Now, do all the non-first-level matches. These are simple.
$text = str_replace("[php:$uid]", $code_start_html, $text);
$text = str_replace("[/php:$uid]", $code_end_html, $text);
$text = str_replace('&nbsp;', '&nbsp;', $text);
$text = str_replace('&</font><font color="#0000CC">nbsp</font><font color="#006600">;', '&nbsp;', $text);
$text = str_replace('&</font><font color="#0000BB">nbsp</font><font color="#007700">;', '&nbsp;', $text);

if ($added)
{
$text = str_replace('<?<br />', '', $text);
$text = str_replace('?>', '', $text);
}

return $text;

} // bbencode_second_pass_php()
aber das hat auch nichts gebracht :(

KoSSo

Verfasst: 14.09.2003 20:26
von D@ve
Mit \n Fügst Du zwar in die von php generierte html-Datei einen Zeilenumbruch ein, aber nicht in dem was auf dem Bildschirm angezeigt wird, das geht nur mi </ br>.
Ich weiss nicht was das für Formatierungen sind, aber schau mal was das für css-Klassen sind, vielleicht sind da irgendwelche Einträge (margin-top, margin-bottom) die das verursachen.

Kann man das mal irgendwo "live" sehen?

Gruß, Dave

Zusätzliche Leerzeilen bei Verwendung von bbCodes

Verfasst: 15.02.2008 13:31
von Walter65
Hallo zusammen,

ich habe das gleiche "Problem":
Es stört mich, dass bei Verwendung z.B. des bbCodes
  • immer zusätzliche Leerzeilen eingefügt werden, die ich gar nicht eingegeben habe.

    Wie bzw. wo kann man das abstellen?

    Vielen Dank im Voraus für "sachdienliche Hinweise"! :wink:

    Walter65

Verfasst: 12.03.2008 13:46
von Walter65
Schieb! :D