用截断字符串替换数组中Array中的字符串

时间:2011-12-07 19:17:52

标签: php codeigniter tumblr truncate

我在我的网站上使用CodeIgniter。我也在我的网站上使用tumblr API来显示发布的消息。

因为显示整个文本有点太多,我想将正文副本截断为150个字符,我是通过使用CI的character_limiter函数来完成的。

我的“家庭”控制器中的代码如下:

public function index() {       
    //Title for home page   
    $data['title'] = "Home - Welcome";

    // Obtain an array of posts from the specified blog
    // See the config file for a list of settings available
    $tumblr_posts = $this->tumblr->read_posts();

    foreach($tumblr_posts as $tumblr_post) {
        $tumblr_post['body'] = character_limiter($tumblr_post['body'], 150);
    }

    // Output the posts 
    $data['tumblr_posts'] = $tumblr_posts;      

    // Load the template from the views directory
    $this->layout->view('home', $data);
}   

问题是,当我在浏览页面上回显$tumblr_post['body']时,{{1}}没有缩短。像上面这样做可以在Asp.net(C#)中运行,但它似乎不适用于php,任何人都知道为什么以及如何解决它或者还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

问题在于foreach循环。您需要在&之前添加$tumblr_post以通过引用传递它。这可以确保您实际编辑数组中的值。如果没有&,则只需编辑局部变量而不是数组。

尝试这样(注意&):

foreach($tumblr_posts as &$tumblr_post) {
    $tumblr_post['body'] = character_limiter($tumblr_post['body'], 150);
}