douye6812 2015-11-27 17:18
浏览 49
已采纳

替换<ul> -tag中的换行符

I have been battling with this for a while, because I guess I am not that awesome at regex. I have a few ul-tags and within those I would like to replace every /n newline with "" (nothing). So, I would like to have this

other lines right here
[ul]
[li]line[/li]
[li]line 1[/li]
[li]line 2[/li]
[/ul]
other lines right here

[ul]
[li]line[/li]
[li]line 1[/li]
[li]line 2[/li]
[/ul]
other lines right here

changed to

other lines right here
[ul][li]line[/li][li]line 1[/li][li]line 2[/li][/ul]
other lines right here

[ul][li]line[/li][li]line 1[/li][li]line 2[/li][/ul]
other lines right here

I only want to get rid of the newlines within the ul-tag. How do I go about this issue I have? Should I pre_match_all every ul tag and then format the matched content the way I would like it to be? Or is there any easier solution with preg_replace that takes care of all the newlines within the tag?

Thanks for the help already!

  • 写回答

1条回答 默认 最新

  • douyangqian5243 2015-11-27 17:38
    关注

    I'd look at it a different way. the [li]s will always be inside a [ul] (well, hopefully!). So you can just match newlines either side of those:

    $string = preg_replace('/\R*(\[\/?li\])\R*/', '$1', $string);

    You could do the same with a couple of str_replaces:

    $string = str_replace("
    [li]", "[li]", $string);
    $string = str_replace("[/li]
    ", "[/li]", $string);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部