使用Opencart从PHP字符串中删除字符

时间:2014-02-25 10:35:59

标签: php string replace opencart trim

我目前正在使用Opencart(1.5.6.1)运行多线程, 我有一个商店,有很多产品,但他们都必须有相同的名称, 现在在后端我有“Blah - Tshirt 15”“Blah - Tshirt 16”等等......

在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恤只是说

“Blah - T恤”

是否有一种简单的方法可以str replacetrim代码说明,从$product[name]删除最后一个或两个字符

我不是一个庞大的PHP专家,我知道一点,但我无法理解......

4 个答案:

答案 0 :(得分:1)

有一个名为substr http://nl3.php.net/substr的PHP函数。您可以使用substr($product['name'], 0, -1);这将删除最后一个字符。如果您使用-2,则会删除最后2个字符,依此类推。

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

答案 1 :(得分:0)

我使用substr($product['name'], 0, -2)使用substr剪掉字符串中的最后2个字符。

但是,如果要从字符串中删除所有数字,请使用正则表达式。与来自this SO postpreg_replace("/[0-9]/", "", $product['name']);一样。它使用preg_replace

答案 2 :(得分:0)

您可以按照其他人的建议删除substr($var, 0, -n)的最后n个字符。但是如果你想删除&#34;一个空格后跟字符串末尾的任意数字位数&#34;,请使用正则表达式:preg_replace('/ \d+$/', '', $var)

答案 3 :(得分:0)

在您的模板中,只需替换此行

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

这一行

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

这应该导致这个结果:

  

Blah - T恤1 - &gt; Blah - T恤   Blah - T恤15 - &gt; Blah - T恤   Blah - T恤150 - &gt; Blah - Tshirt

没有尾随空格。