formatierung der usereingabe..

Rev

Erfahrenes Mitglied
hi!
ich formatiere die usereingabe folgendermassen:
PHP:
$br="<br>";
$chr="\n";
$text = ereg_replace('<([^>]|\n)*>', '', $text);
$text = str_replace("&nbsp;", "<br>", $text); 
$text = ereg_replace($br."[ \t\n$br]*".$br, "\n$p", ereg_replace("[$chr]", "\n$br", $text)); 

// zeilenumbruch 
$text_array = explode(" ",$text); 
foreach ($text_array as $komment) 
{ 
$komment = wordwrap($komment,50," ",1);
$komment3 = "$komment3 $komment";
}
$text = $komment3;

// macht die urls klickbar
$text=replace_url("$text");

mein problem ist folgendes: manchmal wird der text einfach fett (weiß nich genau warum) und wenn du urls länger als 50 zeichen sind werden sie gesplittet, funktion um klickbar zu machen:
PHP:
// Funktion um Urls klickbar zu machen und die Sessionid rauszufiltern
function replace_url($str) {
  $pattern = '#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
  return preg_replace($pattern,"\\1<a target=\"_blank\" href=\"\\redirect.php?url=\\2\\3\"><u>\\2\\3</u></a>\\4",$str);
}

ok, grad wie ich html filter ist nich so die feine art, aber deswegen frag ich euch ja ;)
die eine function ist übrigens nich von mir!
 
Zuletzt bearbeitet:
$komment = wordwrap($komment,50," ",1);
Hier stellst du doch ein das der Text umgebrochen werden soll.
// Funktion um Urls klickbar zu machen und die Sessionid rauszufiltern
function replace_url($str) {
$pattern = '#(^|[^\"=]{1})(http://|ftp://|mailto:|news:)([^\s<>]+)([\s\n<>]|$)#sm';
return preg_replace($pattern,"\\1<a target=\"_blank\" href=\"\\redirect.php?url=\\2\\3\"><u>\\2\\3</u></a>\\4",$str);
}

Dürfe eigentlich nicht fett dargestellt werden. Kann man das irgendwo ankucken?
 
ja schon klar ;) das prob ist der soll umbrechen, die urls "sichtbar" kürzen (wie hier im board) aber dennoch funktionstüchtig lassen.. normalen text soll er umbrechen...

das mit dem fett kann man sehen, allerdings musst du dich anmelden, wann das genau auftritt weiß ich nich, iss ab und zu mal da (grad nich)

http://213.240.169.157/cassiopeia/NetCommunity
nach der anmeldung aufs "board" klicken, da läuft das script
 
Achso, das meinst du :D

Dann mache am besten zwei Variablen im Stil von:

// fuer den href
$link = "";

// zum anzeigen, in gekürzter Version
$show_link = "";
 
ja das problem ist allerdings dann immernoch das der eigentliche "link" umgebrochen wird, somit nicht mehr funktionstüchtig ist, hast du da ne idee wie ich das umgehen kann?
 
Also wenn ich deinen Code richtig verstehe dann passiert ja folgendes:

Die Funktion replace_url() kürz deinen String richtig? Das kannst du dann nichtmehr verwenden. Allerdings mußt du als Parameter ja eine URL mitgeben da die Funktion sonst nicht läuft.

Dann mach es doch so:

PHP:
// Kann auch von User kommen
$link = "http://www.meindomain.de/?id=23234&name=asasdf&sid=5235h4j535jj345hj35j3h453j45&page=datei.php";

// Link kürzen
$shortlink = replace_url ( $link );

// vollen Link anzeigen
echo $link."<br><br>";

// kurzen Link anzeigen
echo $shortlink."<br>";

So müßte es gehen. Oder habe ich es immernoch nicht richtig verstanden :p
 

Neue Beiträge

Zurück