带有展开和折叠选项的PHP文本限制

带有展开和折叠选项的PHP文本限制,php,javascript,html,Php,Javascript,Html,有没有办法限制php中的文本,然后添加扩展/折叠选项 例如: 我有一张500个字符长的便笺,如果我设置了文本限制($notetlimit=100;),我将得到100个字符,之后,我想插入图像(圆圈、箭头等),单击后将显示其余文本,并更改为另一个图像(例如向上箭头),单击后再次关闭其余文本。有点像分页符 这是可能的,还是我必须使用js进行扩展和折叠?您可以使用普通PHP(文本扩展需要重新加载页面,不支持SEO),也可以使用普通js(例如with),或者您可以混合使用两者:在PHP中创建HTML标记

有没有办法限制php中的文本,然后添加扩展/折叠选项

例如:

我有一张500个字符长的便笺,如果我设置了文本限制($notetlimit=100;),我将得到100个字符,之后,我想插入图像(圆圈、箭头等),单击后将显示其余文本,并更改为另一个图像(例如向上箭头),单击后再次关闭其余文本。有点像分页符


这是可能的,还是我必须使用js进行扩展和折叠?

您可以使用普通PHP(文本扩展需要重新加载页面,不支持SEO),也可以使用普通js(例如with),或者您可以混合使用两者:在PHP中创建HTML标记,并使用js在扩展和折叠版本之间切换


在普通JS中执行此操作而不更改HTML标记将被大多数人认为是最新的方法()-但每个解决方案都有参数。

您可以在普通PHP中执行此操作(文本扩展需要重新加载页面,不利于搜索引擎优化),在普通JS中执行此操作(例如,使用)或者您可以混合使用这两种方法:在PHP中创建HTML标记,并使用JS在扩展和折叠版本之间切换


在纯JS中执行此操作而不更改HTML标记将被大多数人认为是最新的方法()——但每个解决方案都有参数。

是的,这是可能的。您可以生成如下链接

<a href='...?offset=100'><img src='...arrow.png'/></a>

有关更多信息,请参阅

是的,这是可能的。您可以生成如下链接

<a href='...?offset=100'><img src='...arrow.png'/></a>

有关更多信息,请参阅

您可以使用此功能限制文本

    function gen_string($string,$min=1000,$clean=true) {
        $text = trim(strip_tags($string));
        if(strlen($text)>$min) {
            $blank = strpos($text,' ');
            if($blank) {
                # limit plus last word
                $extra = strpos(substr($text,$min),' ');
                $max = $min+$extra;
                $r = substr($text,0,$max);

            } else {
                # if there are no spaces
                $r = substr($text,0,$min).'.........';
            }

        } else {
            # if original length is lower than limit
            $r = $text;
        }
        return $r ;


    }
其中,$string是将长度限制为$min=1000的文本


现在,要像google plus do一样展开或折叠文本,我们可以使用truncate.js文件。

您可以使用此函数限制文本

    function gen_string($string,$min=1000,$clean=true) {
        $text = trim(strip_tags($string));
        if(strlen($text)>$min) {
            $blank = strpos($text,' ');
            if($blank) {
                # limit plus last word
                $extra = strpos(substr($text,$min),' ');
                $max = $min+$extra;
                $r = substr($text,0,$max);

            } else {
                # if there are no spaces
                $r = substr($text,0,$min).'.........';
            }

        } else {
            # if original length is lower than limit
            $r = $text;
        }
        return $r ;


    }
其中,$string是将长度限制为$min=1000的文本

现在,要像google plus do一样展开或折叠文本,我们可以使用truncate.js文件。

函数myTrace($string,$initialVal,$strPad)

$text=“Helloworld”

$result=myTrace($text,5,“…”)

回声$结果//输出是hello…

函数myTrace($string、$initialVal、$strPad)

$text=“Helloworld”

$result=myTrace($text,5,“…”)


回声$结果//输出是hello…

您可以执行以下操作

$note = "some note goes here";
$noteLimit = 100;
if(strlen($note) > $noteLimit)
{
    RenderCollapsedNote($note);
}
else
{
    RenderFullNote($note);
}

现在,函数RenderCollapsedNote和RenderFullNote为您的便笺生成容器。通过页面上的文本输入实时执行此操作需要您使用javascript/ajax将注释发回(在按键上),并根据响应更新页面。然而,我强烈推荐一种只使用javascript的方法,因为它会比这更有效

$note = "some note goes here";
$noteLimit = 100;
if(strlen($note) > $noteLimit)
{
    RenderCollapsedNote($note);
}
else
{
    RenderFullNote($note);
}

现在,函数RenderCollapsedNote和RenderFullNote为您的便笺生成容器。通过页面上的文本输入实时执行此操作需要您使用javascript/ajax将注释发回(在按键上),并根据响应更新页面。不过,我强烈推荐只使用javascript的方法,因为它将比这更有效。

谢谢,我将尝试使用Expander。谢谢,我将尝试使用Expander。是的,这正是我需要的。是的,这正是我需要的。