dongtaijiao7140 2017-03-13 11:12
浏览 36
已采纳

从字符串中删除前导和尾随中断标记

I have developed a simple PHP feed system which displays all of the logged in users posts. It works fine, however, I have come across a "bug" where if the user has made a status which contains leading and/or trailing <br> points, it'll break the status view.

Now, before anyone marks this as a duplicate; If have tried the following approaches (and two more from posts which I can no longer find) in removing the trailing and leading <br>'s:

  1. Remove <br>'s from the end of a string

  2. How to trim all leading/trailing
    code using php

However, they a) do nothing at all, or b) do work, but remove all the <br> points within the string, even if they are in the middle.

Attempts:

$ctx = preg_replace('/^(<br>){0,}|(<br>){0,}$/m', '', nl2br(escape($post->ctx)));

$ctx = preg_replace('/(<br>)+$/', '', nl2br(escape($post->ctx)));

$ctx = preg_replace('#(( ){0,}<br( {0,})(/{0,1})>){1,}$#i', '', nl2br(escape($post->ctx)));

I have been working on this for a little while now, but have come up with no proper fix. I have come close with attempt c, however, it would remove all <br> points.

All help is appreciated,
Thanks!

  • 写回答

2条回答 默认 最新

  • dounabi6295 2017-03-13 11:41
    关注

    Try to replace with contents optionally wrapped by the <br />'s (note that nl2br inserts <br />):

    ^(?:<br />[
    ]+)*(.*?)(?:<br />[
    ]+)*$
    

    Demo: https://regex101.com/r/7KDCuA/3

    And the PHP code:

    $input = "
    Hello World
    hello world
    
    ";
    $unwrapped = preg_replace("|^(?:<br />[
    ]+)*(.*?)(?:<br />[
    ]+)*$|s", '$1', nl2br($input));
    echo $unwrapped;
    

    Demo: http://codepad.org/BT0A5583

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?