'wordwrap' (Anfänger! Vorsicht!)

ähm...ja...
...wie wäre es mit einem beispiel eines langen links?

kann der link von besuchern angelegt werden?
wenn der link dynamisch angelegt wird, wird im linktext die url des links ausgegeben?
 
Hallo, im Gästebuch können die Besucher Links posten und in den Nachrichten nur die Band. Haben ein sehr schmales Design und wenn ein solcher Link zB: www.musik-seite.de/beispiel/artikel/gitarre.htm gepostet wird verzieht sich unser Design. Mit HTML habe ich feste Grössen angegeben aber leider bringt das nicht den gewünschten Erfolg. genauso bei zB C:\musik-programm\einstellungen\ .

Vielleicht hat da jemand bereits etwas oder kennt da einen einfachen Code :(
Vielen Dank

Grüsse
 
Das Problem hab ich zur Zeit auch. Bei mir hat jedoch wordwrap($comment, 30, "<br>"); keine Auswirkung. Kann das vielleicht damit zusammenhängen, dass ich vorher str_replace und nl2br benutze?
 
PHP:
////////////////////////////////////////////////////
// Biete den Users doch einfach so ne Art bbCode an
// Bsp:
// [mail]xxx@xyz.de[/mail]
// [mail=xxx@]mailto:xxx@xyz.de[/mail]
// [ url ]http://www.einganzlangerlinkistdasjetzthier[ /url ]
// [ url=http://www.einganzlangerlinkistdasjetzthier ]Ein Link[ /url ]
//
// nachdem sie dein formular dann abgeschickt haben, kannst du dann gleich
// die worter cutten, mußt es also nicht erst bei der ausgabe machen
// z.b. trim(cutwords(trim(strip_tags($_POST["nachricht"])),32));
//
// wenn du dann aus der DB ausliest, kannst du das mit der funktion bbcode
// formatieren, hier kannst du natürlich auch noch andere such/ersatzmuster
// festlegen z.B suchmuster: "#\[b\](.+)\[/b\]#Uis", ersatzmuster: '<strong>\\\1</strong>'
//
// die ausgabe sieht dann so aus:
// print (nl2br(bbcode($rs[3])));  // wobei $rs[3] der text aus der DB ist
//
// ist zwar nicht sonderlich sauber programmiert, aber bei mir hat es funktioniert.
// wenn du etwas mehr zeit investieren willst, schau dich doch einfach mal im inet um
// für solche dinge gibt es auch zuhauf fertige klassen, oder schau dir einfach mal 
// das template system smarty an, das bietet ebenfalls fertige funktionen dazu
//
// was auch noch  ist, bau deine seite ohne tabellen, nur html und css
// so kannst du die breite eines divs festlegen in dem der text kommt und 
// einfach das attribute overflow: hidden benutzen, nicht schön, geht aber auch ;O) 




////////////////////////////////////////////////////////
// $text ist der zu bearbeitende text
// und $c legt fest nach wievielen zeichen der cut kommt

function cutwords($text, $c) {
	  $MS    = substr_count($text,"\r\n");
	  $Linux = substr_count($text,"\n");
	  $Mac  = substr_count($text,"\r");
	  if ($MS >= $Linux && $MS >= $Mac ) {
	   $returns = "\r\n";
	  } elseif ($Linux > $Mac) {
	   $returns = "\n";
	  } elseif ($Linux < $Mac) {
	   $returns = "\r";
	  }
	$splitted=explode($returns,$text); 
	$anzahl=count($splitted); 
	for($i=0;$i<=$anzahl;$i++) { 
		$zeile=$splitted[$i]; 
		$wordsline="";
		if(strlen($zeile)>=$c) { 
			$splitline=explode(" ",$zeile); 
			$anzline=count($splitline);
		
			for($j=0;$j<$anzline;$j++) {
				if (strlen($splitline[$j])>$c) {
					if((!preg_match("((e?)mail|url)",$splitline[$j]))) {	
						$wordsline .= chunk_split($splitline[$j],$c," ")." "; 
					} else $wordsline .= $splitline[$j]." ";
				} else
					$wordsline .= $splitline[$j]." ";
			} 
			$zeile=$wordsline; 
		} 
		$ergebnis.=$zeile.$returns; 
	} 
	return($ergebnis);
}


 
function bbcode($entry) {
	// Suchmuster
	$patterns = array (
	    "#\[(e?)mail\](.+)\[/\\\1mail\]#Uis",
    	"#\[(e?)mail=(&quot;|\"|'|)(.+)\\\2](.+)\[/\\\1mail\]#Uis",
    	"#\[url=(&quot;|\"|'|)(.+)\\\1](.+)\[/url\]#Uise",
    	"#\[url\](.+)\[/url\]#Uise"
	);
	
	// Ersatzmuster
  	$replacements = array (
    	'<a href="mailto:\\\2">E-Mail</a>',
    	'<a href="mailto:\\\3">\\\4</a>',
    	'"<a href=\"".str_replace("  ","","\\\2")."\" target=\"_blank\">\\\3</a>"',
    	'"<a href=\"".str_replace("  ","","\\\1")."\" target=\"_blank\">".(strlen(str_replace("  ","","\\\1")) > 32 ? substr(str_replace("  ","","\\\1"),0,28)."..." : "\\\1")."</a>"'
    );
    
    // Text neu formatieren
    $build_txt = preg_replace($patterns, $replacements, $entry);
    
    // und raus
	return $build_txt;
}
 
Zuletzt bearbeitet:
Zurück