如果我必须回复一个长名称
echo "arnold schwarzenegger";
我希望它限制单词长度并显示前6个字符,并在“...”中显示其余字符
arnold...
怎么做?当我将光标悬停在“...”上时,有没有办法显示长名称?
答案 0 :(得分:2)
这是一个可以完成工作的自定义功能:
function shorten($str, $maxlen) {
if(strlen($str) <= $maxlen - 3) {
return $str;
} else {
return substr($str, 0, $maxlen - 3) . '...';
}
}
echo shorten('arnold schwarzenegger', 10); // output: arnold ...
如果输出是HTML,那么除了PHP解决方案之外,还可能有CSS解决方案。我的CSS有点生疏,但您可以在这里找到帮助:wordwrap a very long string
答案 1 :(得分:1)
echo substr('arnold schwarzenegger', 0, 6)."..."; // arnold...
语法:
echo substr($variable, START, END)."WRITE ANYTHING END OF LINE";
答案 2 :(得分:1)
你基本上是在问两个不同的问题。
这已经回答了几次,但最简单的语法是:
strlen($name, 0, 10);
这只显示前10个字符。 “0”代表开始。
我希望您使用对象,因为您可以轻松地为模型添加方法并使用以下内容:
$user->getShortname();
这样可以使第二部分变得更容易。
取决于您的结构和架构;您可以轻松地将原始全名和缩写名称一起放在同一对象或不同变量中。
根据您选择的工具(jQuery,您想要使用的任何其他插件等),您可以轻松添加工具提示插件。如果我建议的话,jQuery-UI有一个很好的。
添加它取决于您选择的工具,它会改变添加工具提示的难度。使用jQuery-UI版本,它就像:
一样简单<span class="tooltip" title="<?=$user->getFullname()?>"><?=$user->getShortname()?></span>
并将以下Javascript添加到您的页面:
$(".tooltip").tooltip();
那应该工作得很好:-)。如果您对其中一个部分有任何更具体的问题;更新原始帖子或创建新问题。
答案 3 :(得分:0)
试试这个:
$a ='arnold schwarzenegger';
$result=substr(strip_tags(html_entity_decode($a, ENT_QUOTES, 'UTF-8')), 0, 20);
print_r($result);
请参阅此links
答案 4 :(得分:0)
如果要从数据库中提取数据,可以使用MySQL LEFT
直接获取缩短值。
SELECT table_name.field_name, LEFT(table_name.field_name, 6) as shorten from table_name
如果您尝试获取博客网站 post excerpt 之类的内容,这可能会有所帮助。
功能参考:http://www.w3resource.com/mysql/string-functions/mysql-left-function.php