我在我的网站上使用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,任何人都知道为什么以及如何解决它或者还有其他方法吗?
答案 0 :(得分:1)
问题在于foreach
循环。您需要在&
之前添加$tumblr_post
以通过引用传递它。这可以确保您实际编辑数组中的值。如果没有&
,则只需编辑局部变量而不是数组。
尝试这样(注意&
):
foreach($tumblr_posts as &$tumblr_post) {
$tumblr_post['body'] = character_limiter($tumblr_post['body'], 150);
}