发布到 instagram 时换行符不一致

Inconsistent line breaks when posting to instagram

我们正在 post 访问 Instagram;换行符以一种方式工作 (js),但在服务器端处理时不起作用 (php):这是为什么?

我们已经创建了一个服务器端应用程序,它使用 Hootsuite 创建和安排 posts,我们 post 使用 Twitter、Instagram 和 Facebook。

假设这是 post:

我是第1行

我是第2行

我是小三

它会被发送到Hootsuite,然后posted到合适的平台;在 Twitter 和 Facebook 上看起来就是这样。然而,当 post 转到 Instagram 时,它显示为:

我在第1.I行2.I在第3行

换行符被忽略(并非总是如此,但前几个肯定是)。

我们注意到,如果我们将 post 发送到 Hootsuite,并且在发布之前,我们 运行 通过 this 文本:它解决了问题。

以下是引入换行符的两种方式:(php 用于我们的应用程序,js 用于链接的网站)

    <?php
    // outputted wherever line breaks are necessary
    $output .= "I am string \r\nEnd of string";
    ?>

    <script>
    // Example using the copyToClipboard() function from http://apps4lifehost.com/Instagram/CaptionMaker.html

    var str = "I am text

    End of string";
    str.replace(/(?:\r\n|\r|\n)/g, "\u2063\n");
    </script>

插入休息时间的 php 方法适用于所有其他平台和 Hootsuite 预览,但一旦 posted 到 instagram 就不起作用。但是 JS 会。

我们需要使用PHP方法来让这个过程更有效率,那么我们该怎么做呢?

抱歉,如果信息不足;该项目是保密的,因此我们可以在必要时提供更多信息:请直接提问,我会编辑问题。

Instagram 默认删除 line-breaks,不仅通过 API,甚至当您通过他们的应用程序手动输入标题时也是如此。

您可以通过使用特殊字符而不是标准 line-breaks 来解决这个问题,例如 INVISIBLE SEPARATOR (U+2063)。如果您查看问题中的 JavaScript 解决方案,他们会将 line-breaks 替换为 "\u2063\n"(隐形分隔符,换行符)。

我想您可以根据 this answer 在您的 PHP 中复制它。

<?php
   $output = "I am line 1 \u{2063}\n I am line 2";
?>