0

私はこれらのような価格のショートコードを持っています:

[price ELEPHANT]
[price MONKEY_345]
[price TIGER.3TAIL]

ここで、大文字の単語(拡張子がある場合)は製品SKUです。

SKUとPRICEのデータベースクエリを実行したので、テキストのショートコードをアイテムの実際の価格に置き換えたいと思います。

[price ELEPHANT]になります46.97

1.)preg_replaceを使用していますが、「。」を使用できません。またはSKUの「_」:

$text = '<p>We have the price: [price CANOPY3.75B]. This is some more text.</p>';
$pattern = '/\[(\w+) (\w+)\]/';
$replacement = '$2';
echo preg_replace($pattern, $replacement, $text);

2.)ショートコードSKU値を特定したら、それを使用して配列で関連する価格を検索するにはどうすればよいですか?

(コードブロックをOKにしたことを願っています-これが私の最初の投稿です。)

4

1 に答える 1

1

「名前と価格」のペアを含む次の配列があるとします。

$prices = array('ELEPHANT' => 46.97, 'CANOPY3.75B' => 20.35, 'TIGER.3TAIL' => 30 ... etc.);

次に、次のコードを使用できます。

$prices = array('ELEPHANT' => 46.97, 'CANOPY3.75B' => 20.35, 'TIGER.3TAIL' => 30,);

$text = '<p>We have the price: [price CANOPY3.75B]. This is some more text.</p>';
$pattern = '/\[price (.*?)\]/';
echo preg_replace_callback($pattern, 
        function($match)
        { 
            global $prices;
            return isset($prices[$match[1]]) ? $prices[$match[1]] : $match[1]; 
        }, 
        $text);
//output: We have the price: 20.35. This is some more text.
于 2013-02-02T16:14:30.220 に答える