我目前正在使用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 replace
或trim
代码说明,从$product[name]
删除最后一个或两个字符
我不是一个庞大的PHP专家,我知道一点,但我无法理解......
答案 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 post的preg_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
没有尾随空格。