如果我必须呼出一个长名字
echo "arnold schwarzenegger";
我希望它限制字长并显示前 6 个字符,并在“...”中显示其余字符
arnold...
怎么做?当我将光标悬停在“...”上时,有没有办法显示长名称?
这里有一个可以完成这项工作的自定义函数:
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
echo substr('arnold schwarzenegger', 0, 6)."..."; // arnold...
句法:
echo substr($variable, START, END)."WRITE ANYTHING END OF LINE";
您在这里基本上是在问两个不同的问题。
这已经回答了几次,但最简单的语法是:
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();
那应该工作得很好:-)。如果您对这些部分之一有任何更具体的问题;更新您的原始帖子或创建一个新问题。
尝试这个 :
$a ='arnold schwarzenegger';
$result=substr(strip_tags(html_entity_decode($a, ENT_QUOTES, 'UTF-8')), 0, 20);
print_r($result);
请看这个链接
如果您从数据库中获取数据,您可以使用MySQL LEFT
它直接获取缩短值。
SELECT table_name.field_name, LEFT(table_name.field_name, 6) as shorten from table_name
如果您尝试获取博客网站的帖子摘录之类的内容,这可能会有所帮助。
函数参考:http ://www.w3resource.com/mysql/string-functions/mysql-left-function.php