danke.
hm also gut hier poste ich mal den code, dann kann mir vll jemand sagen,
wo das URL problem liegt.
<?php
function no_spam($mail)
{
$str = "";
$a = unpack("C*", $mail[1]);
foreach ($a as $b)
$str .= sprintf("%%%X", $b);
$mail[1] = str_replace(".", " [punkt] ", $mail[1]);
$link = str_replace("@", " [ät] ", $mail[1]);
return "<a href=\"mailto:".$str."\">".$link."</a>";
}
function bbcode($text, $url = TRUE, $bb = TRUE) {
/********************************************************************
*
* Autor: user-251el Müller, 30.07.2003, 17:55
*
* $url -> TRUE, wenn URls automatisch umgewandelt werden sollen
* $bb -> TRUE, wenn BB-Code umgewandelt werden soll
*
* Erklärung:
* werden zu <b> und </b>
* werden zu <i> und </i>
* werden zu <u> und </u>
* werden zu <ul> und </ul>
*
werden zu <ol type="a"> und </ol>
*
werden zu <ol type="1"> und </ol>
*
* ... wird zu <li>...</li>
* wird zu <div align="center"> und </div>
*
* wird zu <font color="red"> und </font>
*
* wird zu <font size="1"> und </font>
*
* werden zu <img src="...">
*
--> siehe Config
* [ php] [/ php] --> siehe Config
*
--> siehe Config
* ... wird zu <a href="..." target="_blank">...</a>
* [email=...]...[/email] wird zu <a href="mailto:...">...</a>
********************************************************************/
# Config #
$max_l = 100; // maximale Länge eines Wortes
$lword_replace = "-<br />"; // Lange Wörter werden getrennt durch...
//Pfad zu den Smilie-Bildern, (mit abschließendem /, also zb "bilder/smilies/":
$smilie_pfad = "smilies/";
// Header und Footer beschreiben, wie...
// der farbige PHP-Code umschlossen wird
$header_php = '<br/><br/><div>PHP-CODE:<br/><br/><code>';
$footer_php = '</code></div><br/>';
// Zitate umschlossen werden
$header_quote = '<br/><br/><div><i>Zitat:</i><br/>';
$footer_quote = '</div><br/>';
// normaler code umschlossen wird
$header_code = '<br/><br/><div>CODE:<br/><br/><pre>';
$footer_code = '</pre></div><br/>';
# Ab hier nichts mehr ändern #
#####################################################################
# PHP-Code-Blöcke zwischenspeichern #
$c = md5(time());
$pattern = "/\[php\](.*?)\[\/php\]/si";
preg_match_all ($pattern, $text, $results);
for($i=0;$i<count($results[1]);$i++) {
$text = str_replace($results[1][$i], $c.$i.$c, $text);
}
# PHP-Code-Blöcke zwischenspeichern #
# alles, was die Codeblöcke nicht betrifft #
// zu lange Wörter kürzen
$text = htmlentities($text);
$lines = explode("\n", $text);
$merk = $max_l;
for($n=0;$n<count($lines);$n++) {
$words = explode(" ",$lines[$n]);
$count_w = count($words)-1;
if($count_w >= 0) {
for($i=0;$i<=$count_w;$i++) {
$max_l = $merk;
$tword = trim($words[$i]);
$tword = preg_replace("/\[(.*?)\]/si", "", $tword);
$all = substr_count($tword, "http://" + substr_count($tword, "https://" + substr_count($tword, "www." + substr_count($tword, "ftp://"
if($all > 0) {
$max_l = 200;
}
if(strlen($tword)>$max_l) {
$words[$i] = chunk_split($words[$i], $max_l, $lword_replace);
$length = strlen($words[$i])-5;
$words[$i] = substr($words[$i],0,$length);
}
}
$lines[$n] = implode(" ", $words);
} else {
$lines[$n] = chunk_split($lines[$n], $max_l, $lword_replace);
}
}
$text = implode("\n", $lines);
//$text = htmlentities($text);
// URLs umformen
if($url) {
$text = preg_replace_callback(
'"(\w+://)?(\w*\.?\w+\.\w+/?\S*)"',
create_function(
'$m',
'return \'<a href="\'.(strlen($m[1])?$m[1]:"http://".$m[2].\'">\'.$m[1].$m[2].\'</a>\';'
),
$text
);
//$text = preg_replace('"((|^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"si',
// '<a href="\1" target="_blank">\\1</a>', $text);
//$text = preg_replace('"(|^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"si',
// '\\1<a href="http://\2" target="_blank">\\2</a>', $text);
$text = preg_replace_callback('"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"si', 'no_spam', $text);
}
// BB-Code
if($bb) {
//fetgedruckt
$text = preg_replace("/\[b\](.*?)\[\/b\]/si",
"<b>\\1</b>", $text);
//kursiv
$text = preg_replace("/\[i\](.*?)\[\/i\]/si",
"<i>$1</i>", $text);
//unterstrichen
$text = preg_replace("/\[u\](.*?)\[\/u\]/si",
"<u>\\1</u>", $text);
//liste
$text = preg_replace("/\[list\](.*?)\[\/list\]/si",
"<ul>\\1</ul>", $text);
//listenpunkt
$text = preg_replace("/\[list=(.*?)\](.*?)\[\/list\]/si",
"<ol type=\"\\1\">\\2</ol>", $text);
//listenpunkt
$text = preg_replace("/\[\*\](.*?)\\n/si",
"<li>\\1</li>", $text);
//unterstrichen
$text = preg_replace("/\[h1\](.*?)\[\/h1\]/si",
"<span class=\"ueberschrift\">\\1</span><br/>", $text);
//ausrichtung
$text = preg_replace("/\[align=(.*?)\](.*?)\[\/align\]/si",
"<div align=\"\\1\">\\2</div>", $text);
//schriftfarbe
$text = preg_replace("/\[color=(.*?)\](.*?)\[\/color\]/si",
"<font color=\"\\1\">\\2</font>", $text);
//schriftgröße
$text = preg_replace("/\[size=(.*?)\](.*?)\[\/umfliessen\]/si",
"<font size=\"\\1\">\\2</font>", $text);
//bild
$text = preg_replace("/\[img\](.*?)\[\/img\]/si",
"<img src=\"\\1\" border=\"0\" alt=\"bild\"/>", $text);
//bild mit alt-tag
$text = preg_replace("/\[img=(.*?)\](.*?)\[\/img\]/si",
"<img src=\"\\1\" border=\"0\" alt=\"\\2\"/>", $text);
//links/rechts umflossen
$text = preg_replace("/\[umfluss=(.*?)\](.*?)\[\/umfluss\]/si",
"<span class=\"\\1\">\\2</span>", $text);
//ueberschrift
$text = preg_replace("/\[h1\](.*?)\[\/h1\]/si",
"<span class=\"h1\">\\1\</span><br/>", $text);
//codeblock
$text = preg_replace("/\[code\](.*?)\[\/code\]/si",
$header_code.'\\1'.$footer_code, $text);
//link
$text = preg_replace("/\[url=http:\/\/(.*?)\](.*?)\[\/url\]/si",
"<a href=\"http://\\1\" target=\"_blank\">\\2</a>", $text);
//link mit name
$text = preg_replace("/\[url=(.*?)\](.*?)\[\/url\]/si",
"<a href=\"http://\\1\" target=\"_blank\">\\2</a>", $text);
//emailadresse
$text = preg_replace("/\[email](\w+?)@(\w+?)\.(\w+?)\](.*?)\[\/email\]/si",
'$4 <$1 bei $2 punkt $3>', $text);
//SMILIES
//------------------------------------------------------------------------------------------
//
$text = preg_replace("/\/si",
"<img src=\"".$smilie_pfad."grin.gif\" alt=\"*grins*\"/>", $text);
//
$text = preg_replace("/\/si",
"<img src=\"".$smilie_pfad."biggrin.gif\" alt=\"*grins*\"/>", $text);
//
$text = preg_replace("/\:\|/si",
"<img src=\"".$smilie_pfad."worried.gif\" alt=\"*worried*\"/>", $text);
//
$text = preg_replace("/\;\)/si",
"<img src=\"".$smilie_pfad."wink.gif\" alt=\"*zwinker*\"/>", $text);
//
$text = preg_replace("/\/si",
"<img src=\"".$smilie_pfad."tongue.gif\" alt=\"*worried*\"/>", $text);
//
$text = preg_replace("/\/si",
"<img src=\"".$smilie_pfad."tongue.gif\" alt=\"*worried*\"/>", $text);
//;P
$text = preg_replace("/\;P/si",
"<img src=\"".$smilie_pfad."tongue.gif\" alt=\"*worried*\"/>", $text);
//o0
$text = preg_replace("/0o/si",
"<img src=\"".$smilie_pfad."suspicious.gif\" alt=\"*hmm*\"/>", $text);
//zitat
while(preg_match('/\[quote\](.*?)\[\/quote\]/isU', $text)) {
$text = preg_replace('/\[quote\](.*)\[\/quote\]/si',
$header_quote.'\\1'.$footer_quote,
$text);
}
}
# alles, was die Codeblöcke nicht betrifft #
# PHP-Code-Blöcke umwandeln #
for($i=0;$i<count($results[1]);$i++) {
ob_start();
highlight_string(trim($results[1][$i]));
$ht = ob_get_contents();
ob_end_clean();
$all = $header_php.$ht.$footer_php;
if(function_exists("str_ireplace") {
$text = str_replace("[ php]".$c.$i.$c."[/ php]",$all,$text);
} else {
$text = str_replace("[ php]".$c.$i.$c."[/ php]",$all,$text);
$text = str_replace("[php]".$c.$i.$c."[/ php]",$all,$text);
}
}
# PHP-Code-Blöcke umwandeln #
$text = nl2br($text);
// Text zurückgeben
return $text;
}
?>