2017-05-26 10 views
0

私はこれまでのすべてのトピックを通して見栄えがよく、私の質問に答えるためにそれらを使用するのに十分なPHPを理解していません。preg_replaceからpreg_replace_callbackに移動

{ 
    $content = preg_replace('/\$([\w]+)/e', '$0', $this->getTemplateStyle()); 
    $custom_css = $this->getCustomCSS(); 
    return $content.$custom_css; 
} 

そして、私はpreg_replace_callbackpreg_replaceを交換する必要があります。私はそれが単純なスイッチではなく、コードにもっと追加する必要があることを知っていますが、私は何を追加すべきか分かりません。あなたの助けを前にありがとう。

答えて

-1

[SOLVED] 現在のスコープから変数に文字列を挿入しようとしているようです。なぜこれが悪い考えであり、ユーザーの入力がないと仮定すれば、私は脇に置いておきます。まず、現在のスコープを取得します:行わ

preg_replace_callback('/\$(\w+)/',function($m) use ($scope) {if(isset($scope[$m[1]])) return $scope[$m[1]]; else return $m[0];}, $this->getTemplateStyle()); 

仕事:

$scope = get_defined_vars(); 

次は、コールバックを使用しています。 - @Niet the Dark Absol

+1

重複している場合、なぜあなたは答えていますか? –

+0

私は本当に他の答えへのリンクに感謝していますが、私のPHPの知識は私の問題のためにそれを使用する方法を翻訳するにはあまりにも基本的です。私は同じビットを持っていません。 '/&#(\ d +);/m'と私はスタイルシートを呼び出そうとしていますが、何を変えるべきか分かりません。私はカット&ペーストできるコードを本当に必要としています。 – Claire

+1

現在のスコープの変数を文字列に挿入しようとしているようです。なぜこれが悪い考えであり、ユーザーの入力がないと仮定すれば、私は脇に置いておきます。最初に現在のスコープを取得します: '$ scope = get_defined_vars();'。次に、コールバックを使用します: 'preg_replace_callback( '/ \ $(\ w +)/'、function($ m)use($ scope){if(isset($ scope [$ m [1]]))return $ scope [$ m [1]];そうでなければ$ m [0];}、$ this-> getTemplateStyle()); 'を返します。ジョブが完了しました。 –

関連する問題