【问题标题】:Rtrim in php remove last <br>php 中的 Rtrim 删除最后一个 <br>
【发布时间】:2018-10-28 23:19:15
【问题描述】:

我有一个非常奇怪的问题。我的脚本删掉了最后一个&gt;,我不知道为什么。

<?php

$string = "<a href='#'>Test</a>" . "<br>";
$string = rtrim($string, "<br>");

var_dump($string);

// OUTPUT

string '<a href='#'>Test</a' (length=19)

// INSTEAD

string '<a href='#'>Test</a>' (length=20)

我需要删除字符串中的最后一个&lt;br&gt;(如果存在)并且仅当是字符串的尾部。

例子:

$string = "<a>CC</a><br><a>CC</a>" //is ok
$string = "<a>CC</a><br><a>CC</a><br>" // --> <a>CC</a><br><a>CC</a>

【问题讨论】:

  • rtrim 不会将其第二个参数视为字符串,而是将其视为字符列表。所以它会从字符串的末尾删除&lt;br&gt;的所有实例。
  • 操作我总是以不好的方式使用 Rtrim! :(
  • @GiuseppeLodiRizzini 是的,你做到了。我已经纠正了。随意使用我的代码。

标签: php


【解决方案1】:

第二个参数不是分隔符,而是字符掩码。因此,它肯定会单独修剪任何字符串。

您还可以通过 character_mask 参数指定要去除的字符。只需列出您要删除的所有字符。使用 .. 可以指定字符范围。

如果只有一个&lt;br&gt;,则必须使用str_replace() 删除它:

str_replace("<br>", "", $string);

或者你需要使用RegExp:

preg_replace('/<br>$/', "", $string);

【讨论】:

  • 不,我不止一个
    ...我可以有其他的内部字符串。我的目标是仅删除字符串末尾的
    (如果存在)
  • @GiuseppeLodiRizzini 然后使用 RegExp 版本...最后只删除一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2013-12-12
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
相关资源
最近更新 更多