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