簡體   English   中英

將價格簡碼替換為數組中的實際價格

[英]Replace price shortcode with actual price from array

我有這樣的價格簡碼:

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

大寫字母(帶有擴展名,如果有的話)是產品SKU。

我已經對SKU和PRICE運行了數據庫查詢,所以現在我想將文本中的簡碼替換為商品的實際價格。

[price ELEPHANT] 46.97 [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值后,如何使用它在數組中搜索相關價格?

(希望我對代碼塊進行了確定-這是我的第一篇文章。)

假設您有以下帶有“名稱-價格”對的數組:

$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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM