2012-08-23 35 views
3

目前全球唯一的PHP命令我所知道的是:如何在任何頁面上在OpenCart上顯示SubTotal?

<?=$text_items?> 

這吐奶:

1 item(s) - £318.75 

我想要得到的318.75值,所以此刻我想一個取代,但它無法正常工作所有順利:

$short = $text_items; 
$short = str_replace("£", "", $short); 
$short = str_replace("&pound;", "", $short); 
$short = str_replace("-", "", $short); 
$short = str_replace("&ndash;", "", $short); 
$short = str_replace(" ", "", $short); 
$short = str_replace("-", "", $short); 
$short = str_replace("ITEMS", "", $short); 
$short = str_replace("(", "", $short); 
$short = str_replace(")", "", $short); 
$short = str_replace("item(s)", "", $short); 
$short = str_replace("ITEM", "", $short); 
+0

難道沒有辦法讓變量,而不是直接不必通過文本分析它的喜歡這個? – Pacerier

回答

2
$total = @floatval(end(explode('£', html_entity_decode($text_items)))); 
  • html_entity_decode改變&pound;£
  • end(explode('£'是給你的字符串後 '£' 字
  • 終於floatval的計價串浮動。
  • @正在繞過E_STRICT錯誤,該錯誤發生在傳遞常量的end()函數中。

Working example


第二種解決方案是正則表達式:

preg_match_all('!\d+(?:\.\d+)?!', $text_items, $result); 
echo $result[1]; 

Working example

+0

我只想要價值'318.75'沒有磅符號,沒有破折號。就是那個價值。基本上英鎊標誌後的價值。 – TheBlackBenzKid

+0

是的,所以我給你兩個解決方案。你甚至檢查過我的例子嗎? – Peter

+0

謝謝。什麼是快速和更好的使用?你能不能解釋一下正則表達式? – TheBlackBenzKid

相關問題