Exemplo n.º 1
0
/**
 * Returns the portion of string specified by the start and length parameters. If $trimmarker is supplied, it is appended to the return string. This function works fine with multi-byte characters if mb_* functions exist on the server.
 *
 * @param string $str
 * @param int $start
 * @param int $length
 * @param string $trimmarker
 * @return string
 */
function xoops_substr($str, $start, $length, $trimmarker = '...')
{
    xoops_load('XoopsLocal');
    return XoopsLocal::substr($str, $start, $length, $trimmarker);
}
Exemplo n.º 2
0
/**
* Returns the portion of string specified by the start and length parameters. If $trimmarker is supplied, it is appended to the return string. This function works fine with multi-byte characters if mb_* functions exist on the server.
*
* @param    string    $str
* @param    int       $start
* @param    int       $length
* @param    string    $trimmarker
*
* @return   string
*/
function xoops_substr($str, $start, $length, $trimmarker = '...')
{
    if (is_callable(array("XoopsLocal", "substr"))) {
        return XoopsLocal::substr($str, $start, $length);
        // Or
        // return xoops_local("substr", $str, $start, $length);
    }
    if (!XOOPS_USE_MULTIBYTES) {
        return strlen($str) - $start <= $length ? substr($str, $start, $length) : substr($str, $start, $length - strlen($trimmarker)) . $trimmarker;
    }
    if (function_exists('mb_internal_encoding') && @mb_internal_encoding(_CHARSET)) {
        $str2 = mb_strcut($str, $start, $length - strlen($trimmarker));
        return $str2 . (mb_strlen($str) != mb_strlen($str2) ? $trimmarker : '');
    }
}