Link umbrechen
Tolwin
- php
Hallo Forum,
ich baue mir eine Tabelle dynamisch mit PHP zusammen.
Diese hat feste Breiten vorgegeben. Wenn nun ein Link zu einer
Datei ohne Leerzeichen in das Tabellenfeld eingetragen wird,
wird die Tabelle entsprechend vergrössert. Dies soll aber nicht
passieren. Habe es mit dem div Tag overflow:auto / hidden usw.
versucht, leider ohne Erfolg. Es würde mir genügen wenn nur
ein Teil des Links/Dateinamens (z.B. Formular_Ausnahmegenehmigung)
im Tabellenfeld dargestellt wird. Bin aber auch für andere Vorschläge
offen.
Schon mal vielen DAnk und Gruß
Tolwin
Moin Tolwin,
Datei ohne Leerzeichen in das Tabellenfeld eingetragen wird,
wird die Tabelle entsprechend vergrössert. Dies soll aber nicht
passieren. Habe es mit dem div Tag overflow:auto / hidden usw.
schaue doch mal hier nach: http://de.selfhtml.org/html/tabellen/gestaltung.htm#zeilenumbruch
regds
Mike©
Moin nochmal,
»» Moin Tolwin,
Datei ohne Leerzeichen in das Tabellenfeld eingetragen wird,
wird die Tabelle entsprechend vergrössert. Dies soll aber nicht
passieren. Habe es mit dem div Tag overflow:auto / hidden usw.schaue doch mal hier nach: http://de.selfhtml.org/html/tabellen/gestaltung.htm#zeilenumbruch
ich habe Dein Post nochmal durch gelesen und befürchte das ich Dein Problem falsch gedeutet habe.
regds
Mike©
Hi,
Es würde mir genügen wenn nur
ein Teil des Links/Dateinamens (z.B. Formular_Ausnahmegenehmigung)
Ich kürze entweder den Pfad des Dateinames und ersetze den (vermeintlich/hoffentlich) weniger bedeutenden mittleren Teil durch "..." oder breche an vermeintlich "sinnvollen Grenzen" um:
phrasewrap($filename,20,'/') würde z.B. bei jedem "/" weich umbrechen (falls der ein Teil >20 Zeichen), bzw. falls ein Teilstück ohne "/" trotzdem länger ist, wird trotzdem "weich" umbrochen. Der Code für den Umbruch wird ggf. als 3. Parameter übergeben.
/* Zwangsweiser Umbruch in einem Satz 050525 */
function phrasewrap($string,$length=79,$break='-',$div='<wbr>') {
// Satz in Woerter zerlegen
$words=explode(' ',$string);
// Alle Woerter durchgehen
for($i=0;$i<count($words);$i++) {
// Wenn Wort zu lang ...
if(strlen($words[$i])>$length) {
// ... und Soll-Bruchstelle im Wort (z.B. Bindestrich) ...
if($break && strpos($words[$i],$break)!==FALSE) {
// ... Wort an Bruchstelle aufteilen
$parts=explode($break,$words[$i]);
// Alle Wortteile (rueckwaerts) durchgehen (da Wortteile ggf. laenger werden)
for($p=count($parts)-1;$p>=0;$p--) {
// Wenn Wortteil zu lang ...
if(strlen($parts[$p])>$length) {
// ... Wortteil umbrechen
$parts[$p]=wordwrap($parts[$p],$length,$div,1);
} elseif($p<count($parts)-1) {
// Wenn nicht: Umbruch vor dem folgenden Wortteil (hinter der Bruchstelle)
$parts[$p+1]=$div.$parts[$p+1];
}
}
// Wort wieder zusammensetzen
$words[$i]=implode($break,$parts);
} else {
// Keine Bruchstelle im Wort, also Zwangsumbruch
$words[$i]=wordwrap($words[$i],$length,$div,1);
}
}
}
// Woerter wieder zusammenfuegen
return implode(' ',$words);
}
Gruß, Cybaer
Vielen Dank für die ausführliche Beschreibung!
Werde es versuchen.
Gruß
Tolwin