Text nach X Zeichen kürzen mit Einschränkungen
AllesMeins
- php
0 Felix Riesterer0 Tom
Hiho,
ich müssste mehrere Text automatisch nach ~250 Zeichen kürzen. Allerdings sollen in einigen dieser Texte einige Wörter in eckige Klammern gefasst werden, um damit zu verhindern das dieses Wort (oder dieser Satz) abgeschnitten wird. Ich muss also irgendwie ein "Kürze den Text nach 250 Zeichen, solange diese Stelle nicht in den eckigen Klammern liegt" ansonsten soll erst nach der schliessenden eckigen Klammer gekürzt werden. Hat irgendwer einen Tipp für mich, wie sich das realisieren lässt?
Grüsse
Marc
Lieber Marc,
ich müssste mehrere Text automatisch nach ~250 Zeichen kürzen.
Also substr($string, 250) oder so ähnlich.
Allerdings sollen in einigen dieser Texte einige Wörter in eckige Klammern gefasst werden, um damit zu verhindern das dieses Wort (oder dieser Satz) abgeschnitten wird. Ich muss also irgendwie ein "Kürze den Text nach 250 Zeichen, solange diese Stelle nicht in den eckigen Klammern liegt" ansonsten soll erst nach der schliessenden eckigen Klammer gekürzt werden. Hat irgendwer einen Tipp für mich, wie sich das realisieren lässt?
Angenommen Du hast Deinen Text in $text abgelegt.
$text_gekuerzt = ""; // hier kommt das Endergebnis rein
$text_kurz = substr($text, 0, 250);
// testen, ob gegen Ende eine "[" vorkommt...
if(strrpos($text_kurz, "[") > 0)
{
// Text ist zu früh "abgeschnitten" worden?
$klammer_auf = strrpos($text_kurz, "[");
$klammer_zu = strrpos($text_kurz, "]");
if($klammer_zu > 0 && $klammer_zu > $klammer_auf)
{
// Alles palletti! Klammer innerhalb des Ausschnitts auch wieder geschlossen
$text_gekuerzt = $text_kurz;
}
else
{
// PROBLEM!!! Text zu früh gekürzt!
// -> letzte schließende eckige Klammer finden und Text erweitern
$rest_text = substr($text, 251, strlen($text));
$klammer_zu = strpos($rest_text, "]");
$text_gekuerzt = $text_kurz.substr($rest_text, 0, $klammer_zu);
}
}
// gekuerzter Text liegt nun in $text_gekuerzt vor
Dieser Schnipsel ist ungeprüft! Ausserdem schließt dieser Code einen mangelhaft verklammerten Text nicht aus!
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hiho,
danke für die Idee. Hab zwar dein Script nicht verwendet, aber das hat mich immerhin auf eine passende Idee gebracht wie ich da rangehen muss. Jetzt hab ich mir eines gebastelt, das auch gleich "Klammerzeichen" beliebiger Länger unterstützt.
Grüsse
Marc
Hello,
du baust einfach eine Schleife auf, die drei Zähler bedient.
EK_auf
EK_zu
Zeichen
solange lesen lassen, bis Zeichen > abschneiden ist und EK_auf == EK_zu,
dann abschneiden.
Und gut ists
Harzliche Grüße aus http://www.annerschbarrich.de
Tom