不会用动态内容剪切单词的substr

时间:2013-10-22 14:40:58

标签: php dynamic substr

所以,初学者设计师在这里,所以给予的任何帮助将非常感谢并通过互联网cookie奖励。

我有一个新闻网站的动态内容,可以从每日更新的数据库中抓取其故事。我们正在重新设计,并且它一直是我的宠儿,整个预告片被放入首页。我把它冷凝下来并修改了建议给我的一个子程序。

<?php

        $position=200;

        $post = substr($row_News['teaser'],0,$position);

        echo $post;
        echo "...";
        ?>

它的工作绝对完美,期望它能减少一半。由于戏弄总是在变化,如果我使用这个副词,这是可修复的还是我必须要忍受的东西?

总是感谢,很快就会发布Cookie。

3 个答案:

答案 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'];
}