2013-10-22 20 views
1

因此,初学者设计师在这里给予的任何帮助都将得到非常赞赏和奖励与互联网cookie。substr不会删除带有动态内容的词

我有一个新闻网站的动态内容,它抓住了来自每日更新数据库的故事。我们正在重新设计,而且我的宠物总是将整个传情放入首页。我正在凝结它并修改了一个建议给我的substr。

<?php 

     $position=200; 

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

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

它的工作原理绝对完美,期望它将一个字切成两半。由于玩笑总是在变化,这是可以解决的,或者只是我必须忍受的事情,如果我使用这个substr?

非常感谢,即将发布的cookies。

+1

我建议在回答这里寻找:http://stackoverflow.com/questions/1233290/making-sure-php-substr-finishes-on-a-word-not-a-字符/ 1233360#1233360 – JWMarchant

+0

可能重复[如何在PHP中截断字符串到最接近特定字符数的字?](http://stackoverflow.com/questions/79960/) –

+0

它是类似的,可能是但我已经尝试了大约一个小时与他们合作,所以我想问一下,看看我是否错过了一些东西,我就是这样。 – user2907544

回答

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

+0

所有的互联网饼干,但两个给你!试了一下,并根据需要进行了修改以便开始工作,而这正是我最想找的。谢谢! – user2907544

0

你需要d 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']; 
}