删除锚点中的最后一个逗号

时间:2016-09-19 09:56:27

标签: php

我有一个锚标记列表,其中逗号由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
}
?>

如何删除最后一个锚标记中的逗号?

2 个答案:

答案 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++;}
?>