所以,初学者设计师在这里,所以给予的任何帮助将非常感谢并通过互联网cookie奖励。
我有一个新闻网站的动态内容,可以从每日更新的数据库中抓取其故事。我们正在重新设计,并且它一直是我的宠儿,整个预告片被放入首页。我把它冷凝下来并修改了建议给我的一个子程序。
<?php
$position=200;
$post = substr($row_News['teaser'],0,$position);
echo $post;
echo "...";
?>
它的工作绝对完美,期望它能减少一半。由于戏弄总是在变化,如果我使用这个副词,这是可修复的还是我必须要忍受的东西?
总是感谢,很快就会发布Cookie。
答案 0 :(得分:0)
问题几乎与Making sure PHP substr finishes on a word not a character
相同示例:
$post = $row_News['teaser'];
if (preg_match('/^.{1,260}\b/s', $row_News['teaser'], $match))
{
$post=$match[0];
}
答案 1 :(得分:0)
这是不使用正则表达式:
的方法<?
$position=200;
$post = substr($row_News['teaser'],0,$position);
$post = substr($post, 0, strrpos($post, ' '));
echo $post."....";
?>
参考:Making sure PHP substr finishes on a word not a character
答案 2 :(得分:0)
您需要wordwrap()
功能
$string_limit = 200;
$delimiter = "...";
if(strlen($row_News['teaser']) > $string_limit){
// If string is bigger than limit
$intact = wordwrap($row_News['teaser'], $string_limit);
$intact_array = explode("\n", $intact);
$str = $intact_array[0] . $delimiter;
}
else{
// else string will be as it is
$str = $row_News['teaser'];
}