Text (String-) Länge?

Arndtinho

Erfahrenes Mitglied
Guten Morgen,

mein Script liest den Inhalt eines Textfeldes aus. Das funktioniert auch ohne Probleme. Nun möchte ich aber, dass der Inhalt nach einer bestimmten Anzahl von Zeichen oder Zeilen abgeschnitten wird.

Also zum Beispiel:
öffne Datei --> lese die ersten 3 Sätze des Textes --> gebe die Sätze aus

Wie löse ich das am besten?


Gruß Arndtinho
 
Das könntest du nur lösen, wenn nach jedem Satz ein Punkt steht und nirgendwo anders dazwischen einer. Dann
PHP:
$satzarray = explode(".",$text);
echo $satzarray[0].". ".$satzarray[1].". "$satzarray[2].".";
 
Re:

Danke.
Das werde ich mal versuchen. Wenn in dem File ein "!" oder "?" steht, dann funktioniert das also nicht? Welche anderen Möglichkeiten gibt es noch?

Gruß Arndtinho
 
Dann gibt es zumindest keine so einfache Lösung. Dann müsste man über einen regulären Ausdruck wahrscheinlich die Positionen der ersten drei Satzendzeichen .!? ausfindig machen und bis zur Position des dritten alles ausgeben.
Da fällt mir jetzt allerdings so spontan auch keine kurze Lösung zu ein, die ich mal eben hier hintippen könnte.
 
Re:

Ich habe mal Deinen ersten Vorschlag getestet und bin da schon auf ein Problem gestossen. Sobald ein Datum an Anfang steht wird nur der erste Datumswert (bei mir ist das die Tagesangabe) eingelesen.
Nun habe ich mir gedacht um das auch mit den Satzzeichen zu umgehen, wäre es doch günstiger zu sagen: "beende das auslesen bzw. darstellen (im Browser) nach dem 200sten Zeichen"
Funktioniert sowas? Wenn ja, wie? Ich finde da nix dazu.

Gruß Arndtinho
 
Notlösung gefunden

Hi,

habe gerade 'ne Notlösung gefunden. Mache es jetzt so:

echo substr($line, 0, 75)."<br>"

Gruß Arndtinho
 
Naja schon. Aber der gibt dir halt immer die ersten 75 Zeichen aus und zwar unabhängig davon ob du da im ersten, zweiten oder zwölften Satz bist bei Zeichen 75.
 
Re:

Ich weis, aber somit umgehe ich erstmal die Geschichte mit den Problemen der Satzzeichen, Datumsangaben usw. . Das dies nicht die Ideallösung ist, ist klar.

Gruß Arndtinho
 
Hi,

nimm die Funktion preg_split(). Damit kannst du einen String nach Regulären Ausdrücken teilen. Suche dort einfach nach ?, ! oder . gefolgt von einem Leerzeichen oder Zeilenumbruch (am Besten nimmst du wohl 'whitespace': \s).

[edit] Hab nen direkten Link gesetzt, ein Mirror ist grad down, auf den ich sonst weitergeleitet wurde. [/edit]

Gruß,
matt
 
Zurück