2014-02-25 40 views
0

我目前使用Opencart(1.5.6.1)運行多個核心, 我有一個有很多產品的商店,但它們都必須具有相同的名稱, 現在在後端我有「嗒嗒 - T恤15」「胡說 - T恤16」等等......使用Opencart從PHP字符串中刪除字符

在Opencart的還有一個foreach循環

<?php foreach ($products as $product) { ?> 
<?php if ($product['name']) { ?> 
    <?php if ($product['product_href']) { ?> 
    <div class="name"> 
    <a href="<?php echo $product['product_href']; ?>"> 
    <?php echo $product['name']; ?> 
    </a> 
    </div> 

<?php } else { ?> 

<div class="name"> 
<?php echo $product['name']; ?> 
</div> 

<?php } ?> 

<?php } ?> 

現在的這一個輸出頁面,做它說的,輸出產品名稱「Blah - Tshirt 15」 或任何他們被稱爲。

但是,如果客戶看到的我的客戶希望每個頁面上的T恤,只是說什麼

「嗒嗒 - T恤」

是否有任何str replace,或trim代碼說的簡單方法從$product[name]

刪除最後1個或2個字符我不是一個巨大的PHP專家,我知道一點點,但我不能看着辦吧......

+0

我認爲最好的方法是在數據庫'product_description'和產品形式中添加一個新字段,例如 - 'product_label'。運行查詢爲現有產品插入值並將其顯示在前端。 –

回答

1

有一個叫PHP函數substrhttp://nl3.php.net/substr。您可以使用substr($product['name'], 0, -1);這將刪除最後一個字符。如果您使用-2它將刪除最後2個字符等。

substr('yourstring'{string}, startindex{int}, endindex{int});

+0

我選擇使用 <?php echo substr($ product ['name'],0,-2); ?> ,它工作完美! – Blackline

0

我會使用substr($product['name'], 0, -2)削減的最後2個字符關閉使用substr的字符串。

但是,如果要從字符串中刪除所有數字,請使用正則表達式。像preg_replace("/[0-9]/", "", $product['name']);this SO post。它使用preg_replace

0

您可以按其他人的建議刪除最後n個字符substr($var, 0, -n)。但是,如果您想要刪除「空格後跟任意數量的字符串末尾」,請使用正則表達式代替:preg_replace('/ \d+$/', '', $var)

0

在模板中只是這一行

<?php echo substr($product['name'], 0, strpos($product['name'], '- Tshirt') + 8); ?> 

這應該導致這樣的結果替換此行

<?php echo $product['name']; ?> 

胡說 - T恤1 - >胡說 - T恤
Blah - Tshirt 15 - > Blah - Tshirt
Blah - Tshirt 150 - > Blah - Tshirt

沒有尾隨空格。