29-09-2010, 01:05
|
|
|
|
חבר מתאריך: 11.03.07
הודעות: 1,668
|
|
ציטוט:
במקור נכתב על ידי Zed3
קוד PHP:
echo(substr($string,0,$char_size));
if (strlen($string)>$char_size) echo '...';
|
רק שזה גם יחתוך תווים באמצע, אם הם בעברית...
קוד PHP:
/**
* Cuts a string to the specified length, and adds the $extra afterwards if it had been cut.
*
* @param (string) $string - String to cut.
* @param (integer) $length - Length to cut, starting from start of string.
* @param (string) $extra - String to append if the string had been cut by the function.
* @param (string) $encoding - Encoding of the string. Default: UTF-8.
* @return (string) - The result string after being cut and appended $extra string.
*/
function cutString ($string, $length, $extra = "..", $cutWords = true, $encoding = "UTF-8") {
$resultString = mb_substr($string, 0, $length, $encoding);
if (mb_strlen($resultString, $encoding) > $length && !$cutWords && mb_substr($resultString, -1) != " " && mb_substr($string, $length, 1) != " ") {
// we broke a word in the middle. try to complete it, with up to 10 chars, else assume it's just a really really long and fake word so truncate it anyways.
// get all the next chars before a space.
$resultString .= mb_substr(mb_strpos($string, " ", $length, $encoding) === false ? mb_substr($string, $length) : mb_substr($string, $length, mb_strpos($string, " ", $length, $encoding)), 0, 5);
}
$resultString .= mb_strlen($resultString, $encoding) > $length ? $extra : "";
return $resultString;
}
מוזמן לערוך לפי הצרכים שלך...
|