html中怎么添加字符串,如何在HTML片段中插入字符串

我不知道这个源码究竟来自哪里,但我一直在使用这段代码,它非常出色。

/**

* @desc Cut given plain/HTML text nicely

* @param string text to cut

* @param int approximetly length of desired text length

* @param int optional length, how far text can variante from approximetly length

* @param bool optional can we cut words

* @param bool optional do we need to append three dots to the end of cutted text

* @return string cutted text

*/

function htmlSubstr($text, $approxLength, $lengthOffset = 20, $cutWords = FALSE, $dotsAtEnd = TRUE) {

mb_internal_encoding('UTF-8');

// $approxLength:

// The approximate length you want the concatenated text to be

// $lengthOffset:

// The variation in how long the text can be in this example text

// length will be between 200 and 200-20=180 characters and the

// character where the last tag ends

// Reset tag counter & quote checker

$tag_counter = 0;

$quotes_on = FALSE;

// Check if the text is too long

if (mb_strlen($text) > $approxLength) {

// Reset the tag_counter and pass through (part of) the entire text

$c = 0;

for ($i = 0; $i < mb_strlen($text); $i++) {

// Load the current character and the next one

// if the string has not arrived at the last character

$current_char = mb_substr($text,$i,1);

if ($i < mb_strlen($text) - 1) {

$next_char = mb_substr($text,$i + 1,1);

} else {

$next_char = "";

}

// First check if quotes are on

if (!$quotes_on) {

// Check if it's a tag

// On a "

// or add only 1 if it's an ending tag (like )

if ($current_char == '

if ($next_char == '/') {

$tag_counter += 1;

} else {

$tag_counter += 3;

}

}

// Slash signifies an ending (like or ... />)

// substract 2

if ($current_char == '/' && $tag_counter <> 0) $tag_counter -= 2;

// On a ">" substract 1

if ($current_char == '>') $tag_counter -= 1;

// If quotes are encountered, start ignoring the tags

// (for directory slashes)

if ($current_char == '"') $quotes_on = TRUE;

} else {

// IF quotes are encountered again, turn it back off

if ($current_char == '"') $quotes_on = FALSE;

}

// Count only the chars outside html tags

if($tag_counter == 2 || $tag_counter == 0) $c++;

// Check if the counter has reached the minimum length yet,

// then wait for the tag_counter to become 0, and chop the string there

if ($c > $approxLength - $lengthOffset && $tag_counter == 0 && ($next_char == ' ' || $cutWords == TRUE)) {

$text = mb_substr($text,0,$i + 1);

if($dotsAtEnd){

$text .= '...';

}

return $text;

}

}

}

return $text;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值