SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.05.2005, 21:18:19
c.brandau c.brandau ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 12
Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

Hallo

Ich hab ein Problem in PHP und hoffe man kann mir hier weiterhelfen.
Ich bin PHP Neuling, deswegen habt bitte Nachsicht.

Meine Überlegung für einen Zeilenumbruch ist:
Ich habe eine Tabelle mit TD width=300 height=40 oder so.
Da lade ich einen dynam. text aus der DB hinein.
Als nächstes einen Alogrithmus der die Leerzeichen zwischen den Wörtern erkennt
und die Zeile am Leerzeichen vor dem Wort das nicht mehr in die Zeile bis 330
width hineinpasst umbricht .
Mit den Leerzeichen deswegen, da es nicht schön aussieht wenn er Sätze wie
"..Hirsch heiße ich"

zu

".............Hir"
sch heiße ich....."

in der Mitte eines Wortes abschneidet.

Aber ich will nicht nur die Ausdehnung des TD nach rechts verhindern.
Anstatt dass der dyn. Text die Tabelle womöglich nach unten ausdehnt, wollte ich eigentlich auch noch die letzten paar Zeichen (im stabil gebliebenem TD) durch <a href="#.html">...weiterlesen</a> ersetzen.
Nur wie wiederum mach ich dass? Muss ich irgendwie mit Pixeln rechnen
oder die letzten Paar Zeichen die in die letzte Zeile im TD reinpassen
zurückrechnen und dann ersetzten?

Ist meine Überlegung überhaupt richtig?
Ich hoffe ihr könnt mir ein paar Hinweise geben.

Danke
Mit Zitat antworten
  #2  
Alt 25.05.2005, 00:07:58
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

Schau dir mal die Funktion wordwrap() an.
Mit Zitat antworten
  #3  
Alt 25.05.2005, 00:49:45
c.brandau c.brandau ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 12
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

hallo xabbuh,

danke für den Tipp!! es klappt.

nur welche maßeinheit ist 20?? pixel oder zeichen scheinen
es ja nicht zu sein.
( $neuertext = wordwrap( $text, 20 ); )

und hast du vielleicht noch einen Tipp für die zweite Problemstellung.
das mit den letzten zeichen im TD durch link ersetzen und sie nicht
das TD nach unten ausdehnen lassen - also TD stabil behalten?
ich nehme nicht an, dass es sich hierbei um nur einen Befehl handelt.
Mit Zitat antworten
  #4  
Alt 25.05.2005, 09:03:11
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Zitat von c.brandau
nur welche maßeinheit ist 20?? pixel oder zeichen scheinen
es ja nicht zu sein.
Lies die von xabbuh verlinkte Anleitung, dann weißt Du es.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 25.05.2005, 20:32:54
c.brandau c.brandau ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 12
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

Hallo!

Da stand zwar Zeichen da, aber es klappte nicht bei mir (somit war ich irritiert)
denn....
man hat ja ein Array wenn man die Daten (strings) aus der DB ausliest und mit print($zeile[2]) ausgibt. (zweite Zeile in der DB - daten werden mit schleife geholt)

wenn ich jetzt aber wordwrap so anwende

$text = wordwrap( $zeile[4], 30 );
echo "$text\n";

gehts ja nicht, weil die Variable bzw. Array ja nicht übergeben wird wegen der
falschen syntax wie ich vermute...

weiß jemand wie ich den Inhalt $zeile[4] aus der DB geladen
in eine Variable übergeben kann um diese dann mit wordwrap zu bearbeiten??


und zum zweiten Problem habe ich den Befehl
substr () gefunden um nur eine bestimmte zeichenlänge ausgeben zu lassen
damit das TD nicht ausgedehnt werden kann und mein ganzes design verpfuscht.

aber da ist wieder das problem -> man lässt zB. 100 Zeichen zu
aber der Benutzer gibt
erstes Wort <enter>
zweites Wort <enter>
drittes Wort <enter>
viertes Wort <enter>
füntes wort -> und schon ist das TD nach unten hin ausgedehnt, weil ja nur vier zeilen
reinpassen also bringt mir das substr() mit 100 in diesem Falle gar nichts.

Muss man hier die mögliche Lösung in der letzten Zeile die ins TD reinpasst suchen?
Bitte helft mir.
Mit Zitat antworten
  #6  
Alt 25.05.2005, 20:52:34
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

Vergiss am besten, was du du vorhast. Was machst du denn, wenn der Benutzer den Schriftgrad erhöht, in dem die Seite angezeigt wird? Dann sind alle deine Bemühungen umsonst gewesen.
Mit Zitat antworten
  #7  
Alt 25.05.2005, 21:32:31
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

...evtl. kannst Du was mit dem Schmierzettel-Schnipsel anfangen.
wordwrap() ist nur ein Teil der Lösung.
PHP-Code:
<?php
function short_text ($text$anz) {
    
    if (
strlen($text) < $anz) {
        return 
$text;
    }
    
$text wordwrap($text$anz"@TMP_MARKER@"0);
    
$text explode("@TMP_MARKER@"$text);
    
$text $text[0];
    
    
##################################### 
    
$text.= ' <a href="#">weiter...<a>';#   
    #####################################
 
    
return $text;
}

$text "Wie bekomme ich es hin, das z.B. von einem Text, eingelsen aus der datenbank, die ersten 100 Zeichen ausgegeben werden, ohne das das letzte Wort zerschnitten wird, d.h. am Ende das vollständige Wort steht? Im Endeffekt nicht 100 Zeichen ausgegeben werden wollten, sondern je nach Wort am Ende, mal 91, 97, 95.
Bisherige Lösung:"
;
$anz 100;

echo 
$text;
echo 
'<br><br>';
echo 
'<span style="width: 210px; height: 80px; overflow: auto; background-color: #CC9900;">';
echo 
short_text($text$anz);
echo 
'</span>';

#######################################
echo '<hr>';
$arr str_word_count($text1);
echo 
'<pre>';
print_r($arr);
echo 
'</pre>';
?>
Grüße
Mit Zitat antworten
  #8  
Alt 25.05.2005, 21:44:20
c.brandau c.brandau ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 12
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

wenn er denn schriftgrad erhöht (du meinst wohl im Browser mit STRG und +)
dann ist er selber schuld, denn der inhalt steht in einem div mit overflow:hidden. Denn Schriftgrad erhöhen gehört sich nicht ;-)

und natürlich xabbuh, am einfachsten ist es immer gleich alles hinzuschmeißen
aber wenn ich es so haben will, dann find ich auch einen optimalen Weg.
oder wenigstens eine Kompromiss...
und wenn mir niemand aus gutem Willen hilf, dann dauert es halt ein bißchen länger.
Mit Zitat antworten
  #9  
Alt 25.05.2005, 21:47:34
c.brandau c.brandau ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 12
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

Oh, danke für den Anstoß und deine Mühe Chris17!!
Werd es gleich versuchen!
Mit Zitat antworten
  #10  
Alt 25.05.2005, 23:20:59
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Zeilenumbruch von dynamischen Texten in einer Tabelle(TD)erzwingen

Zitat:
Zitat von c.brandau
dann ist er selber schuld, denn der inhalt steht in einem div mit overflow:hidden. Denn Schriftgrad erhöhen gehört sich nicht ;-)
Wäre ja auch dumm, wenn sehbehinderte sich deine Seite vernünftig ansehen könnten.

Zitat:
Zitat von c.brandau
und natürlich xabbuh, am einfachsten ist es immer gleich alles hinzuschmeißen
aber wenn ich es so haben will, dann find ich auch einen optimalen Weg.
Von Hinschmeißen soll hier überhaupt nicht die Rede sein. Ich wollte dir nur aufzeigen, dass du dir mit deiner Idee mehr Probleme einhandelst, als das sie dir irgendetwas nützt.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zeilenumbruch \n funktioniert nicht?? compliment PHP Grundlagen 2 19.04.2005 15:48:24
zeilenumbruch verschieben humixx PHP für Fortgeschrittene und Experten 4 17.04.2003 22:31:43
Zeilenumbruch - Teil 2 DeMaephis PHP für Fortgeschrittene und Experten 2 01.08.2002 19:26:09
Anfängerfrage - Arrayausgabe Zeilenumbruch erzwingen Moses PHP für Fortgeschrittene und Experten 13 24.07.2002 15:56:48
Problem mit Zeilenumbruch... DeMaephis PHP für Fortgeschrittene und Experten 3 18.05.2002 02:36:21


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:59:18 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt