2016-05-26 6 views
0

私はすでに他の開発者が開発した1つのPHPプロジェクトに取り組んでいます。このプロジェクトはCodeigniterで開発されました。私はこの形式のテキストを "{title}"のように見た。php検索と置換機能が動作しない

"This is some text"のようなテキストが表示される。私はこのテキストからスペースを削除したい。 私はPHP関数の検索と置換を使用しています。しかし、この機能は動作しません。

この機能では、「スペース」を「 - 」に置き換えることはできません。

https://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

^^これはあなた

ためstr_replaceを処理する機能が含まれています:それは同じこと「これはいくつかのテキストである」

 {latest_videos} 
      // in {title} = "This is some text" 
     <?php echo $tit = str_replace(' ','_','{title}'); ?> 

      // I want $tit = "This-is-some-text" 
      // But the str_replace give me "This is some text" 

      <a href="{base_url}watch/<?php echo $tit ;?>/{id}"> 

     {/latest_videos} 
+1

削除{}そこ –

+1

^からのようにそれを行うと '$を追加します':) – splash58

+1

あなたが表示するコードスニペットが" view "ファイルからのものだと思います。もしそうなら、以前の開発者はある種のテンプレートシステムを使用しています。つまり、中括弧({'title} 'など)の間の項目はPHP変数ではありません。ビューのデータを生成するコントローラーのどこかで文字列操作を行う必要があります。 – DFriend

答えて

0

のようにあなたがこれを行うことが私を見ますコントローラ/モデルにループを追加して、必要に応じて構造を構築します。

class controller extends CI_Controller 
{ 
    public function index() 
    { 
     $this->load->helper('url'); 
     $videos = ['latest_videos' => [ 
      'title' => 'Name of a video', 
      'id' => 10, 
     ]]; 

     foreach ($videos['latest_videos'] as &$video) { 
      $video['url_safe_title'] = url_title($video['title']); 
     } 

     $this->parser->parse('view_name', $videos); 
    } 
} 

は、その後、あなたのビューで、あなたはこの

{latest_videos} 
<a href="{base_url}watch/{url_safe_title}/{id}">{title}</a> 
{/latest_videos} 

それは微調整が必​​要になる場合がありますが、それはあなたに良いアイデアを与える必要がありますので、これは未テストです:)

関連する問題