2011-12-07 14 views
2

私は自分のウェブサイトにCodeIgniterを使用しています。投稿されたニュースを表示するために私のサイトでtumblr APIも使用しています。文字列を配列内の文字列を切り捨てて置換する

本文全体を表示するのが少し難しいので、ボディコピーを150文字に切り捨てたいので、私はcharacter_limiterのCI機能を使ってこれを行います。私の「ホーム」コントローラに続くよう

コードは次のとおりです。

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で動作するようには見えませんが、誰もがそれを解決する方法を知っていますか、それとも別の方法がありますか?

+0

あなたはテキストヘルパーが含まれましたか..? –

+0

コントローラではなくビューでこれを行うことをお勧めします。 –

+0

関数character_limiter()のコードを投稿してください。 – elias

答えて

1

問題はforeachループです。あなたは参考としてそれを渡すための前に&を追加する必要があります。これにより、実際に配列の値を編集していることを確認できます。 &がなければ、配列ではなくローカル変数を編集しているだけです。

このようにそれを試してみてください(気づく&):

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

うん、それは:)ありがとう。 は(OO)C#でこのようなものですか? –

+0

@reaper_unique: '&'はPHPが変数を参照渡しするように指示します。私はC#を知らないので、どのようにそれらを処理するのか分かりません。 –

関連する問題