我有一个小网站,我显示帖子标题的搜索结果,
一些标题长达255个字符,并且在html表格中显示这些标题时,表格的行中断即不显示正确,所以我使用substr
php函数修剪标题,使其适合表格行。
对于英文标题,它工作得很好,但对于非英文标题,它显示空白区域,即修剪所有内容。
我正在使用substr
这样的
<a href="<? echo $link; ?>" class="strong"><? echo htmlspecialchars(substr($row['title'],0,70)); ?></a>
那么如何制作70字符的非英文标题?
答案 0 :(得分:3)
您应该根据UTF-8的字符数使用multi-byte safe substr()
操作:
mb_substr();
答案 1 :(得分:0)
http://php.net/manual/de/function.wordwrap.php
这可能是因为substr不是多字节保存功能。
您可以使用mb_substr()代替 - “http://de1.php.net/manual/de/function.mb-substr.php”
或尝试使用“wordwrap”功能,因为它只是用于剪切字符串:
<? echo htmlspecialchars(wordwrap($row['title'], "70", "", true)); ?>
另一种可能性是,只使用没有substr()的htmlspecialchars()会发生这种情况吗?但这只是一个建议,因为我的其他两个想法没有帮助。
答案 2 :(得分:0)
尝试使用我从DataLife Engine CMS获得的这个自定义功能
function dle_substr($str, $start, $length, $charset = "utf-8" ) {
if ( strtolower($charset) == "utf-8") return iconv_substr($str, $start, $length, "utf-8");
else return substr($str, $start, $length);
}
像这样
<a href="<? echo $link; ?>" class="strong"><? echo htmlspecialchars(dle_substr($row['title'],0,70)); ?></a>