Strings "abschneiden"
Hendrik
- php
Hallo ProgrammierGemeinde,
ich habe folgenges Problem:
ich habe einen String $test = "das ist ein Test-String";
php soll nun aber nur: "das ist ein ..." ausgeben, also nach einer bestimmten Anzahl von Zeichen abbrechen und nur noch ... dahinterhängen.
Kann mir jemand helfen ??
mfg
Hendrik
Hi!
Schau mal in der php-Doku nach einer Funktion namens substr
Gruß Herbalizer
Moin,
das geht mit "substr"
$string=substr($string,0,5).'...';
$string wird ab dem Zeichen 0 nach 5 Stellen abgeschnitten und "..." angefügt.
http://www.selfphp.info/funktionsreferenz/string_funktionen/substr.php
LG Jakob
Hallo Hendrik,
php soll nun aber nur: "das ist ein ..." ausgeben, also nach einer bestimmten Anzahl von Zeichen abbrechen und nur noch ... dahinterhängen.
du brauchst substr() (->http://www.php.net/substr) (schau dir auch mal die User Contributed Notes an).
Grüße aus Nürnberg
Tobias
Hallo, Hendrik,
ich habe einen String $test = "das ist ein Test-String";
php soll nun aber nur: "das ist ein ..." ausgeben, also
nach einer bestimmten Anzahl von Zeichen abbrechen und nur
noch ... dahinterhängen.
Hier zwei Funktionen für Deinen Zweck. Die erste schneidet den Text nach einer bestimmten Zahl von Zeichen ab und hängt drei Punkte dahinter. Die zweite gibt nur eine festzulegende Zahl vollständiger Wörter aus, was im Allgemeinen zu bevorzugen ist.
Grüße,
Sebastian
<?php
$test = "das ist ein Test-String";
echo $test . "\n<br>\n";
function shortenString($str,$max_length)
{
if(strlen($str)<=$max_length) {return $str;}
else {return trim(substr($str,0,$max_length)) . ' ...';}
}
echo shortenString($test,10) . "\n<br>\n";
function shortenString2($str,$max_words)
{
// split strings into array element
$str_array = split(' ',$str,$max_words+1);
// print word by word if it is longer than what we want
if(count($str_array)>$max_words) {
for($i=0;$i<$max_words;$i++){echo $str_array[$i] . ' ';}
echo '...';
}
// otherwise print the whole string
else { echo $str; }
}
echo shortenString2($test ,3) . "\n<br>\n";
?>