我有一个锚标记列表,其中逗号由foreach循环生成,例如:
<a href="#">Test,</a>
<a href="#">Test1,</a>
<a href="#">Test2,</a>
<a href="#">Test3,</a>
这是代码:
<?php
foreach ($related['fundings'] as $investor) {
?>
<a href="<?php echo startup_url($investor['slug']); ?>"><?php echo $investor['name']; ?>,</a>
<?php
}
?>
如何删除最后一个锚标记中的逗号?
答案 0 :(得分:0)
此处不需要正则表达式,只需设置DOM
并使用字符串函数:
<?php
$data = <<<DATA
<div>
<a href="#">Test,</a>
<a href="#">Test1,</a>
<a href="#">Test2,</a>
<a href="#">Test3,</a>
<a href="#">Leave me alone</a>
</div>
DATA;
$dom = new DOMDocument();
$dom->loadHTML($data, LIBXML_HTML_NOIMPLIED);
$xpath = new DOMXPath($dom);
$links = $xpath->query("//a");
foreach ($links as $link) {
if (substr($link->nodeValue, -1) == ',') {
$link->nodeValue = substr($link->nodeValue, 0, -1);
}
}
echo $dom->saveHTML();
?>
查看ideone.com的工作情况。
<小时/> 或者,甚至更简单,根据您的评论,将代码更改为:
<?php echo $investor['name']; ?>
而不是<?php echo $investor['name']; ?>,
(见末尾的逗号???)。
答案 1 :(得分:0)
如果您只想从最后一个锚标记中删除逗号(,),则可以 获取数组中的总项目并检查最后一项并删除 逗号(,)来自那个。下面的代码可以帮助您
<?php $total = count($related['fundings']); $i=1; foreach ($related['fundings'] as $investor) { if($i!=$total) { ?> <a href="<?php echo startup_url($investor['slug']); ?>"><?php echo $investor['name']; ?>,</a> <?php } else {?> <a href="<?php echo startup_url($investor['slug']); ?>"><?php echo $investor['name']; ?></a> <?php } $i++;} ?>