1

PHP でエコーされた単語またはフレーズを事前定義されたものに自動的に置き換える方法はありますか? を使用してdefine()みましたが、思い通りに動作しません (または、正しく実行していない可能性があります。

私のデータベースには、米国のすべての州がありますが、州名は省略されています。MO、AK、A​​L、IL...

私がやりたいのは、MO をミズーリ、IL をイリノイと定義するファイルを作成することです。MO がエコーされると、自動的にミズーリに置き換えられます。

これを行う良い方法はありますか?

4

3 に答える 3

5

最良の方法は、出力をバッファリングしてから処理することです。

出力バッファリングは、必要なものがエコーされる前に ob_start() を呼び出すことによって行われます。その後、ob_get_clean() を使用してエコーされたすべてを取得できます。これにより、バッファ キューから取り出されます。その後、任意の種類の処理を実行して、再度エコーすることができます。

簡単な例:

<?php
function echoState() { echo "NY"; }

ob_start();
echoState();
$output = ob_get_clean();
echo str_replace("NY","New York",$output);
?>

実行すると、New York がページに印刷されます。

于 2012-11-18T01:13:46.793 に答える
3

いくつかの良い方法があります。1 つは、文字列をすぐにエコーするのではなく、テキストを含む変数を作成してから操作することです。

もう 1 つの方法は、出力バッファリングを使用することです。これは、エコーするすべてのものを取得して保存し、ページを構築してから、一度にすべてを表示するか、変数にダンプして処理できるようにします。

于 2012-11-18T01:12:56.880 に答える
2

ユーザーstr_replace(find,repalce,from);関数を使用して、PHP のあらゆるものを置き換えます。

複数の事前に割り当てられた値を置き換える場合は、以下を使用します。

function replacer($searchArray,$replaceArray, $text){

        $searchArray = array("illinois","NewYork","LosAngeles");    
        $replaceArray = array("IL","NY","LA");  

        return str_replace($searchArray, $replaceArray, $text);
        }

さて、交換部品:

$text = "this is a full text containing everything you want to be replaced";

echo replacer(@$searchArray, @$replaceArray, $text);

于 2012-11-18T01:11:40.313 に答える