Seite 1 von 1

Länge der Zeichenkette?

Verfasst: 17.10.2005 22:07
von fanrpg
Also ich arbeite an einem kleinen Script und dafür soll Narichten ab 255 Zeichen gekürzt werden und mit einem Link auf eine GET Action Page gemacht werden wo dann die kompletten News stehen ohne die anderen aber zum Problem:

Wenn ich das jetzt machen dann zeigt er mir bei News die kleiner als 255 Zeichen sind trotzdem den Link an, aber mit der ID von den längeren News wieso?

Hier mal der Code:

Code: Alles auswählen

$message_long = strlen($message);
if($message_long > 255)
{
$message = substr($message, 0, 255);
$mehr = "...<br /><br /><a href=\"news_view.php?action=longnews&id=".$row['news_id']."\">[ Mehr Lesen ]</a>";
}
Aber wenn ich

Code: Alles auswählen

$message_long = strlen($message);
if($message_long < 255)
{
$message = substr($message, 0, 255);
$mehr = "...<br /><br /><a href=\"news_view.php?action=longnews&id=".$row['news_id']."\">[ Mehr Lesen ]</a>";
}
mache dann macht der das richtig und zeigt den Link nur bei der kleinen Naricht an :o

Ich versteh das irgendwie nicht :o :o :oops:

Re: Länge der Zeichenkette?

Verfasst: 18.10.2005 13:35
von netzmeister
fanrpg hat geschrieben:Ich versteh das irgendwie nicht :o :o :oops:
Wenn ich Deinen Beitrag lese verstehe ich es auch nicht.
Bitte ließ in nochmal durch und koorigiere die gröbsten Rechtschreib- und Satzbaufehler. Danke

Gruß netzmeister

Verfasst: 18.10.2005 14:24
von D@ve
und dafür soll Narichten ab 255 Zeichen gekürzt werden und mit einem Link auf eine GET Action Page gemacht werden
mache dann macht der das richtig und zeigt den Link nur bei der kleinen Naricht an
Du widersprichst Dir selber... Wo soll denn jetzt der Link angezeigt werden bei der großen nachricht (strlen() > 255) oder bei der kleinen Nachricht (strlen() < 255). Vielleicht solltest Du Dir darüber erstmal klar werden, dann ergibt sich der Code von ganz alleine... :D


Gruß, Dave

Verfasst: 18.10.2005 15:04
von fanrpg
Wenn die Nachricht grösser als 255 Zeichen ist, soll die gekürzt werden also wenn die Nachricht grösser als 255 Zeichen, das mit dem kleiner im ersten Post, war nur als Beispiel das er es logisch richtig macht wenn die Naricht kleiner ist.

Zu Bedenken ist auch noch das das Script in einer While Schleife ist

Hier mal der Quellcode vom ganzen Script vielleicht kann man damit mehr anfangen als mit dem Schnipsel oben

www.fanrpg.de/problem.html

Verfasst: 18.10.2005 17:04
von mristau2k5
ersetze das mal

Code: Alles auswählen

$message_long = strlen($message);
if($message_long > 255)
{
$message = substr($message, 0, 255);
$mehr = "...<br /><br /><a href=\"news_view.php?action=longnews&id=".$row['news_id']."\">[ Mehr Lesen ]</a>";
}
mit dem

Code: Alles auswählen

if(strlen($message) > 255)
{
  $message = substr($message,0,255);
  $message .= "...<br /><br /><a href=\"news_view.php?action=longnews&id=".$news_id."\">[ Mehr Lesen ]</a>";
}
und in der Ausgabe

Code: Alles auswählen

<? echo $message, $mehr; ?>
durch

Code: Alles auswählen

<? echo $message; ?>
so müsste der Link dann überall korrekt angezeigt werden. So wie es jetzt ist, hat nämlich $mehr sobald eine lange Nachricht da war immer nen Wert, der dann auch angezeigt wird, wenn die Nachricht kürzer ist.
So wie es jetzt geändert wurde, wird das Mehr nur bei langen Nachrichten angezeigt, beim nächsten Schleifendurchlauf wird $message wieder neu belegt.

Verfasst: 18.10.2005 19:34
von fanrpg
THX deine Variante funktioniert
So wie es jetzt ist, hat nämlich $mehr sobald eine lange Nachricht da war immer nen Wert, der dann auch angezeigt wird, wenn die Nachricht kürzer ist.
Das stimmt, wenn ich unset($mehr); an die While Schleife anhänge (also am Anfang) passiert das auch nicht