0

さて、私は週末中ずっと起きていて、どうやら私の脳は崩壊しました-私は私が思うに簡単なはずの何かを征服することはできません:

PHPを使用します。私は変数を持っています:

$pageid = 9999;

そして、私は次のような何百ものステートメントでいっぱいのテンプレートページを持っています:

<?php $simplex->menu( 200029999, 200009999,1); ?>

(9999は、すべての場合で各番号の末尾にあります)

これらすべてのステートメントで、9999を変数$ pageidに置き換えて、この数値がハードコーディングされないようにする必要があります(notepad ++を使用して一括置換することを考えています)。

しかし、何らかの理由で、動作する構文を思い付くことができず、ここで例を見つけようとする試みも失敗しています。ヒントをいただければ幸いです!!

明確化のための更新:

最後に、ステートメントに$pageidをコード化する必要があります。

<?php $simplex->menu( 20002'.$pageid.', 20000'.$pageid.',1); ?>

明らかに、上記の例は完全なFUBARですが、達成しようとしている最終結果を説明しようとしているだけです...その後、$pageidに割り当てられた値はすべてステートメント自体に適用されます。

4

3 に答える 3

1

これは、Notepad ++の正規表現駆動の置換エンジンを使用して行うことができます(質問が正しければ):

に置き換え(\d+)9999 *,ます\1'.$pageid.',

編集:最初のアスタリスクは意味がありませんでした。

于 2012-12-09T23:49:37.713 に答える
1

これは、9999の他の発生がないことを前提としています

$new_var = str_replace('9999',$pageid,$yourvar_with_the_9999);
于 2012-12-09T23:11:14.643 に答える
1

したがって、コードをリファクタリングしたいと思うようです。これは検索/置換では難しいように思われるかもしれませんが、行は次のようになります。

<?php $simplex->menu( intval('20002'.$pageid), intval('20000'.$pageid), 1); ?>

このようにして、後での値を変更でき$pageid、すべてが機能します。

notepadd ++でこれを置き換えるには、regexを使用します。replacewithを見つけ(\d+)9999,て、 intval('\1'.$pageid),正規表現オプションをチェックします。これがスクリーンショットですスクリーンショット

于 2012-12-09T23:55:48.977 に答える