Länge der Zeichenkette?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Länge der Zeichenkette?

Beitrag 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:
Benutzeravatar
netzmeister
Ehemaliges Teammitglied
Beiträge: 1146
Registriert: 02.05.2003 20:59
Wohnort: Freiburg
Kontaktdaten:

Re: Länge der Zeichenkette?

Beitrag 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
Gruß netzmeister
Die "Suche" ist euer Freund
Benutzeravatar
D@ve
Ehemaliges Teammitglied
Beiträge: 3842
Registriert: 28.08.2002 19:33
Wohnort: Bretzfeld
Kontaktdaten:

Beitrag 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
There are only 10 types of people in the world: Those who understand binary, and those who don't
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag 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
mristau2k5
Mitglied
Beiträge: 140
Registriert: 10.05.2005 02:35
Wohnort: Filderstadt

Beitrag 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.
fanrpg
Mitglied
Beiträge: 2909
Registriert: 13.12.2004 22:41

Beitrag 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
Antworten

Zurück zu „Coding & Technik“