web-dev-qa-db-ja.com

同じ文字列でstr_replaceを複数回使用する

私はテーブルからタイトルをループしているので、それは本質的にこれらの線に沿ったものです。

foreach($c as $row){
    echo string_shorten($row['title']);
}

私がやろうとしているのは、検索したいものを切り替えて、見つかったらstr_replaceで選択したものに置き換えるswitchステートメントです。

function string_shorten($text){
    switch(strpos($text, $pos) !== false){
         case "Hi":
              return str_replace('Hi','Hello', $text);
         break;
    }
}

任意の提案または可能な代替案をいただければ幸いです。私は本当に近くにいるように感じますが、完全ではありません。

11
stepquick

str_replace() のマニュアルで読むことができます

混合str_replace(混合$search、混合$replace、混合$subject [、int &$count])

この例と同様に

// Provides: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

これは、次のようなものを使用できることを意味します

$search = array('Hi', 'Heyo', 'etc.');
$replace = array('Hello', 'Hello', '');
$str = str_replace($search, $replace, $str);
46
kero