如何将PHTML中[‘code’]返回的逗号分隔值替换为换行符?
解决方法:将逗号分隔值替换为换行符
嘿,我懂你的需求啦——就是想把产品附加信息里那种逗号串起来的数值,改成每行显示一个的效果对吧?直接修改输出属性值的那一行就行,用PHP的str_replace()函数就能轻松搞定。
修改后的完整代码
<?php foreach ($_additional as $_data): ?> <tr> <th class="col label" scope="row"><?= $block->escapeHtml(__($_data['label'])) ?></th> <td class="col data" data-th="<?= $block->escapeHtml(__($_data['label'])) ?>"> <?= /* @escapeNotVerified */ str_replace(', ', '<br>', $_helper->productAttribute($_product, $_data['value'], $_data['code'])) ?> </td> </tr> <?php endforeach; ?>
关键细节说明
- 核心逻辑就是用
str_replace(', ', '<br>', $目标值),把逗号加空格的分隔符替换成HTML的换行标签<br>——如果你的属性值是纯逗号分隔(没有空格),就把第一个参数改成','就行。 - 一定要把替换函数套在
$_helper->productAttribute(...)外面,确保先拿到完整的属性值,再做替换操作。 - 如果是纯文本场景(比如导出文件),可以把
<br>换成\n,但在PHTML页面里用<br>才能让浏览器正确渲染换行效果。
内容的提问来源于stack exchange,提问作者Shaun
相关产品推荐
相关产品推荐

