PHP rtrim没有删除尾随\ n

时间:2013-09-13 14:39:23

标签: php string

我需要修剪字符串中的任何尾随\ n。

我使用了rtrim,但由于某种原因,它不起作用。无论是否有rtrim,字符串都保持不变。这让我发疯了。

这是代码:

$strippedDescription = rtrim($strippedDescription);

其中$strippedDescription是:

  

Hill House的老板是HTC设计高级副总裁Scott Croyle。在两间卧室,2个半浴室和一个书房,这个房子足够大,可以与他的妻子和儿子分享。其适度的规模使伯恩斯坦能够在空间数量上强调优质材料。   “这在(科技)社区几乎是一个负面价值,”伯恩斯坦说,这些过度的房屋。 “我们非常强调不立即寻找豪宅。”\ n \ n


修改

好的问题是,$ strippedDescription正在从RSS源中读取并存储在我们的数据库中。这是文章内容。此内容稍后将通过应用程序显示在iPhone上。

iphone程序员说我们需要更换“< b r />”和“< / p>”使用“\ n”,以便iphone正确识别新行。然而,这并没有发生。 \ n显示为文章的一部分。

这是上面部分之前的代码(其中$ itemDescription是包含所有html标签的文章内容):

    $strippedDescription = $itemDescription;    
    $strippedDescription = str_replace('</p>', '\n', $itemDescription);
    $strippedDescription = str_replace('<br/>', '\n', $itemDescription);
    $strippedDescription = str_replace('<br />', '\n', $itemDescription);           

    $strippedDescription = strip_tags($strippedDescription);
    $strippedDescription = rtrim($strippedDescription);

修改

好的我用“\ n”(双引号)替换了'\ n',这似乎解决了这个问题。

谢谢亚历克斯和塞尔吉以及其他人指出我正确的方向。

2 个答案:

答案 0 :(得分:2)

看起来你最后有文字字符\ntrim()不会删除这些内容,因为它们不是空格。

看起来像这样的东西会起作用......

$str = preg_replace('/(\\\n)+\z/', '', $str); 

CodePad

答案 1 :(得分:0)

我们在这里遇到了几个问题。

\ n不是单个字符,因为rtrim不起作用。

但是,您要搜索STRING而不是单个字符。这就是搜索\ n。

时应该使用双引号的原因

第二个问题是,正如你在问题中看到的那样,最后有两个\ n,并且可能会有更多。

我要做的是手动编写执行以下操作的函数:

  1. 反转字符串
  2. 循环时有2个第一个字符==“n \”。
  3. 将这两个字符替换为空白。
  4. 结束循环