我正在为我的网站使用 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']
时,它并没有缩短。 像上面一样做在 Asp.net (C#( 中工作,但它似乎在 php 中不起作用,有人知道为什么以及如何解决它,或者有其他方法吗?
您的问题出在foreach
循环上。 您需要先添加一个&
,然后才能$tumblr_post
通过引用传递它。 这可确保您实际编辑数组中的值。 如果没有&
,你只是在编辑一个局部变量,而不是数组。
像这样尝试一下(注意&
(:
foreach($tumblr_posts as &$tumblr_post) {
$tumblr_post['body'] = character_limiter($tumblr_post['body'], 150);
}