I’m using CodeIgniter for my website. I’m also using the tumblr API on my site to show posted news.
Because showing the entire text is a bit too much, I want to truncate the body copy to 150 characters, I do this by using the character_limiter function of CI.
The code is as followed in my ‘home’ controller:
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);
}
The problem is, that $tumblr_post['body'] isn’t shortened when I echo it on my view page. Doing it like above works in Asp.net (C#) but it doesn’t seem to work in php, anyone know why and how to solve it or is there an other way?
Your problem is with the
foreachloop. You need to add a&before$tumblr_postto pass it by reference. This makes sure you are actually editing the values in the array. Without the&, you’re just editing a local variable and not the array.Try it like this (notice the
&):