Wie kürzt man Texte?
Wie kürzt man Texte?
Also, ich habe z.B. der Variable $eintrag einen Text mit über 500 Buchstaben zugewiesen.
Jetzt würde ich gern wissen wie ich den Text auf 250 Buchstaben kürzen kann und der Rest durch ... mehr ersetzt wird!
Hoffentlich kann mir jemand behilflich sein!
Jetzt würde ich gern wissen wie ich den Text auf 250 Buchstaben kürzen kann und der Rest durch ... mehr ersetzt wird!
Hoffentlich kann mir jemand behilflich sein!
ich häng mich hier mal rein, weil ich auch sowas in der art mache...
bisher hab ich das ganze mit dieser funktion gemacht (die kürzt auf ganze wörter, finde ich irgendwie schöner, als das, was phpbb da macht)
nur würde ich die funktion aber gern so erweitern, dass ggf. vorhandener bbcode sinnvoll verarbeitet wird. d.h., dass tags, die vor der schnittstelle geöffnet, aber danach geschlossen werden, irgendwie da rangehängt werden müssen.
bis jetzt hab ich folgendes (funktioniert aber hinten und vorn nicht):Kann mir da jemand helfen?
bisher hab ich das ganze mit dieser funktion gemacht (die kürzt auf ganze wörter, finde ich irgendwie schöner, als das, was phpbb da macht)
Code: Alles auswählen
function cut_words_string($string, $chars)
{
if(strlen($string) > $chars)
{
$string = substr($string, 0, $chars);
$string2 = implode(' ', array_diff(explode(' ', $string), array(array_pop(explode(' ', $string)))));
if($string != $string2)
{
$string2 .= "...";
}
return $string2;
}
else
{
return $string;
}
}
bis jetzt hab ich folgendes (funktioniert aber hinten und vorn nicht):
Code: Alles auswählen
function cut_words_string2($string, $chars, $bbuid = '')
{
if ( strlen($string) > $chars )
{
$bbcodes = array();
$words = explode(' ', $string);
$i = 0;
$string = '';
while( (strlen($words[$i]) + strlen($string) + 1) <= $chars )
{
$string .= $words[$i] . ' ';
$i++;
}
$scrap = '';
for($i; $i <= count($words); $i++)
{
$scrap .= $words[$i];
}
preg_match_all("/\[\/.+:$bbuid.+\]/", $scrap, $bbcodes);
return $string . implode('', $bbcodes);
}
else
{
return $string;
}
}
Zuletzt geändert von QCO am 08.08.2003 09:49, insgesamt 1-mal geändert.
Schnelle direkte Hilfe? Modeinbau? Umfassender, persönlicher Support? Ein individuelles Design/Template?
Ich bin käuflich und löse zu kleinen Preisen Deine Probleme. Anfragen bitte per PN oder Mail.
Ich bin käuflich und löse zu kleinen Preisen Deine Probleme. Anfragen bitte per PN oder Mail.
-
- Mitglied
- Beiträge: 36
- Registriert: 02.02.2003 14:18
-
- Mitglied
- Beiträge: 36
- Registriert: 02.02.2003 14:18
Die regexp Funktionen sind langsamer als einfache Funktionen wie substr. Ob man sie verwenden sollte, hängt immer davon ab, was man machen will. Wenn man z.B. Postleitzahlen validieren will, reicht es aus zu schreiben if(is_int($plz) && strlen($plz)==5). Wenn es allerdings Komplizierter wird (z.B. EMail-Adressen oder BBCode), sind Reguläre Ausdrücke zumindest aufgrund der Lesbarkeit/Code-Menge zu empfehlen.
Aber wer Wert darauf legt, jede Mikrosekunde Rechenzeit zu sparen, sollte auch eine andere Programmiersprache als PHP verwenden.
Aber wer Wert darauf legt, jede Mikrosekunde Rechenzeit zu sparen, sollte auch eine andere Programmiersprache als PHP verwenden.