【问题标题】:PHP: Insert a substring into a HTML string after every N characters?PHP:每N个字符后插入一个子字符串到HTML字符串中?
【发布时间】:2012-07-31 09:58:36
【问题描述】:

我有一个长字符串将显示在我的页面上。我希望它在每 40 个字符后换行。如何插入这些?

【问题讨论】:

    标签: php html newline


    【解决方案1】:

    使用<br><wbr> 标签:

    wordwrap($string, 40, "<wbr>", true);
    

    基本上,&lt;wbr&gt; 表示允许浏览器换行换行的地方,但如果不需要,它不会显示空格。

    另一方面,&lt;br&gt;总是创建一个换行符。

    【讨论】:

    • 因此,如果 OP 想要将结果字符串插入数据库,或通过 cURL 发送,他将发送不需要的 &lt;wbr&gt;?
    • @AlexanderLarikov 如果他想插入/发送 那个 特定字符串:当然。但如果不是他想要的,他也可以选择不这样做;)我通常在输出时格式化并将原材料存储在数据库中。
    • @asprin 是的,如果您使用的是 XHTML,那将是 XHTML。
    • @phant0m 那么发布 完全 OP想要什么的解决方案不是更好吗?如果他想要换行,他应该使用"\n" 而不是别的,对吧?如果他想在 HTML 页面上换行 - &lt;br /&gt;
    • @phant0m 你误认为我是 OP。我只是在测试代码,因为它对我来说是新的,想看看它是否有效
    【解决方案2】:

    使用 chunk_split manual

    chunk_split($string, 40, "\n");
    

    【讨论】:

    • @asprin 如果您认为这是在插入空格(不是),请尝试使用chunk_split($string, 40, "&lt;br /&gt;\n");。 HTML 渲染引擎不会将换行显示为换行符,它们会将所有空格折叠为单个空格。
    【解决方案3】:
    $string = 'loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong string';
    echo wordwrap($string, 40, "\n", true);
    

    【讨论】:

    • 在发表评论之前我已经测试过了
    • 如果你复制粘贴,你应该得到正确的换行结果。
    • @AlexanderLarikov 他在谈论 HTML,其中换行符充当空格。
    • @phant0m 我不知道他在说什么。他只是认为它不起作用,而代码完全符合 OP 的要求。
    • @AlexanderLarikov 不,您的代码不是他想要的。他想在 page 上换行,而不是在 HTML 源代码中。
    猜你喜欢
    • 1970-01-01
    • 2015-03-13
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多