 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
06.10.2004, 17:54
|
#1
|
|
TP-Newbie
Registriert seit: Sep 2004
|
[php]Text kürzen und per "mehr..." wieder lang machen
Hallo
ich habe mal eine Frage wegen Texten oder Variablen die einen Langen Text enthalten. Ich habe ein Zufallsscript gemacht was Textdateien ausließt und ich habe auch noch vor ein Newsscript zu erstellen.
Ich möchte jetzt erst einmal in meinen Zufallsscript ein Textkürzer haben.
Also ich möchte das so haben das der Text sagen wir mal auf ca. 150 Zeichen begrenzt ist. Sollte der text mehr als 150 Zeichen beinhalten so soll er den Rest der 150 Zeichen nicht anzeigen aber dafür einen Link mit dem Text "mehr..." anzeigen.
Wenn man dann auf mehr klickt soll er den restlichen Text auch mit anzeigen.
Meine Frage ist jetzt: "Wie mache ich das"???
Also wie mache ich das, dass es am einfachsten bzw. am besten ist.
Kann mir vielleicht jemand helfen?
Vielen Dank im Vorraus
Gruss
DjPD
P.S.: Wenn ich diese Funktion jetzt auch in mein Newsscript einbauen möchte. Muss ich da etwas besonderes beachten? Weil ich dem Zufallsscript ist ja je eine Datei und im Newsscript wird es ja so sein das ich eine Datei mit allen News habe. Vielleicht könnt ihr mir hier auch eine kurze Antwort drauf geben. Aber wichtiger ist die obere Frage, da ich absolut nicht weiß wie ich das am besten hinbekomme. Ich hatte ja vor 2 php Dateien zu erstellen und da jeweils das Script mit unterschiedlichen Einstellungen rein zu machen, aber das war ja unlogisch, da es ja ein Zufallsscript ist und wenn ich das so gemacht hätte, würde ja nicht der Text den die Leute weiter lesen wollen verlängert, sondern es würde ja wieder ein neuer text aufgerufen, da ja Zufallsscript 
|
|
|
06.10.2004, 21:59
|
#2
|
|
TP-Senior
Registriert seit: May 2001
Ort: Orenhofen
|
__________________
Ich weiss keinen Weg zum sicheren Erfolg, nur einen zum sicheren Misserfolg - es jedem recht machen zu wollen. Plato
|
|
|
07.10.2004, 02:21
|
#3
|
|
TP-Newbie
Registriert seit: Sep 2004
|
Ja, vielen Dank ersteinmal
Ich habe mir das jetzt eine Weile angeschaut,
aber ich frage mich nur die ganze Zeit wofür ich den den 2ten Link brauche?
wordwrap
Ich habe gesehen das dadurch nur Zeilenumbrüche gemacht werden.
Muss diese Function den da drin sein?
Und der erste ist mir auch nicht so ganz schlüssig. Da ja meine Dateien immer verschieden Gross sind.
PHP-Code:
<?php
function adir($dirname) {
$handle=opendir($dirname);
$dirarray = array();
while ($file = readdir($handle))
{
if ($file > "..") {array_push($dirarray,$file);}
}
closedir($handle);
return $dirarray;
}
function randdir($dirname)
{
srand ((double) microtime() * 10000000);
$dirarray = adir($dirname);
$rndfile = array_rand($dirarray);
return $dirarray[$rndfile];
}
function print_array($array) {
if(gettype($array)=="array") {
echo "<ul>";
while (list($index, $subarray) = each($array) ) {
echo "<li>$index <code>=></code> ";
print_array($subarray);
echo "</li>";
}
echo "</ul>";
} else echo $array;
}
echo $randomtext
?>
Wenn ich jetzt die function wordwrap oder substr einbaue, könnte ich mir ja nie die Datei ganz anzeigen lassen, da ja wenn ich die Seite neu lade z.B. mit einem Link das er jetzt alles anzeigen soll, weil die Seite ja dann wieder zufällig eine andere Datei anzeigen würde und diese dann neu anzeigt.
Hat jemand evtl. noch eine andere Idee???
Oder kann mir jemand bei meinen Gedankengängen helfen?
Gruss
Dj_PD
|
|
|
07.10.2004, 08:37
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Auf Wordwrap wird in diesem Fall fälschlicher Weise des öffteren hingewiesen  ... zu deinem Problem: http://www.traum-projekt.com/forum/s...ad.php?t=46066 dort hab ich ne Funktion aus Smarty geposted, die genau das macht, was du möchtest.
Gruss
Jan
|
|
|
07.10.2004, 08:59
|
#5
|
|
TP-Senior
Registriert seit: May 2001
Ort: Orenhofen
|
Zitat:
|
Zitat von Stuck Mojo
Auf Wordwrap wird in diesem Fall fälschlicher Weise des öffteren hingewiesen
|
Hast schon recht  , aber ...
Soll die Ausgabe nicht mitten in einem Wort unterbrochen werden, bietet es sich an, die Funktion wordwrap() zu "missbrauchen":
PHP-Code:
//Nur ganze Wörter, max. 20 Zeichen von $string ausgeben:
echo wordwrap($string, 20, "\0") . ' ...';
Eigentlich dient wordwrap() dazu, einen Fließtext auf eine gewisse Breite zu formatieren. Das Trennzeichen "\0" terminiert die Ausgabe jedoch bereits beim ersten Trenner, den wordwrap() einzufügen versucht ...
Zitat:
|
Zitat von DjPD
Wenn ich jetzt die function wordwrap oder substr einbaue, könnte ich mir ja nie die Datei ganz anzeigen lassen, da ja wenn ich die Seite neu lade z.B. mit einem Link das er jetzt alles anzeigen soll, weil die Seite ja dann wieder zufällig eine andere Datei anzeigen würde und diese dann neu anzeigt.
|
Der Link darf natürlich nicht mehr auf die random-Datei führen, sondern explizit auf die vorher gekürzte Datei im kompletten.
__________________
Ich weiss keinen Weg zum sicheren Erfolg, nur einen zum sicheren Misserfolg - es jedem recht machen zu wollen. Plato
|
|
|
07.10.2004, 09:12
|
#6
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Zitat:
|
Zitat von kruetten
Eigentlich dient wordwrap() dazu, einen Fließtext auf eine gewisse Breite zu formatieren. Das Trennzeichen "\0" terminiert die Ausgabe jedoch bereits beim ersten Trenner, den wordwrap() einzufügen versucht ...
|
das hab ich ja noch nie gehört? Wieso sollte php bei einem NUL-Byte als Trennzeichen abbrechen?
Gruss
Jan
|
|
|
07.10.2004, 12:12
|
#7
|
|
TP-Newbie
Registriert seit: Sep 2004
|
PHP-Code:
<?php
require "confic.inc.php";
function smarty_modifier_truncate($string, $length = 80, $etc = '...',
$break_words = false) {
if ($length == 0) {
return '';
}
if (strlen($string) > $length) {
$length -= strlen($etc);
if (!$break_words)
$string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
return substr($string, 0, $length).$etc;
}
else {
return $string;
}
}
function adir($dirname) {
$handle=opendir($dirname);
$dirarray = array();
while ($file = readdir($handle))
{
if ($file > "") {
array_push($dirarray,$file);
}
closedir($handle);
return $dirarray;
}
}
function randdir($dirname)
{
srand ((double) microtime() * 10000000);
$dirarray = adir($dirname);
$rndfile = array_rand($dirarray);
return $dirarray[$rndfile];
}
function print_array($array) {
if(gettype($array)=="array") {
echo "<ul>";
while (list($index, $subarray) = each($array) ) {
echo "<li>$index <code>=></code> ";
print_array($subarray);
echo "</li>";
}
echo "</ul>";
}
else {
echo $array;
}
}
$randomfilename = randdir($odnerver);
$randomtext = join(file("texte/",$randomfilename),"\n");
//dies ist nur zum Test
echo "$randomtext";
echo smarty_modifier_truncate($randomtext);
Öhm, ist ja schonmal eine gute Idee, aber irgendwie kommt da nichts.
Aber ich versuche es gleich nochmal, der Zeigt auch keinen Fehler an oder so. Ich hasse das wenn ein Fehler drin ist und er zeigt nichts an
Aber sagen Wir jetzt mal das ich das so zum laufen bekomme.
Wenn das Script dann den Text so ausgibt, dass der ... anhängt wenn er länger als 80 Zeichen lang ist. Dann habe ich ja die passende Datei, so das ich sagen könnte:
... = $randomfilename
(evtl. mit ereg_replace)
und die lasse ich mir dann normal anzeigen.
Wäre das so richtig?
Gruss
Dj_PD
P.S.: Findet Ihr die Programmierung von dem Zufallsscript gut, oder hättet Ihr noch Tips wie man das besser machen könnte, so das auch die function (text kürzen) besser einzubauen ist. Bin ja auch noch frisch in php und "function ..." fällt mir noch sehr schwer, da ich nie genau weiß was das genau ist, bzw. wie man diese ausführen kann.
Geändert von DjPD (07.10.2004 um 12:15 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:14 Uhr.
|
 |