1

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

我们创建了一个服务器端应用程序,它使用 Hootsuite 创建和安排帖子,我们使用 Twitter、Instagram 和 Facebook 发布。

说如果这是帖子:

我是1号线。

我是2号线。

我在 3 号线。

它将被发送到Hootsuite,然后发布到相应的平台;它在 Twitter 和 Facebook 上看起来像这样。但是,当发布到 Instagram 时,它会显示为:

我是 1 号线,我是 2 号线,我是 3 号线。

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

我们注意到,如果我们将帖子发送到 Hootsuite,并且在发布之前,我们会通过以下方式运行文本:它可以解决问题。

以下是引入换行符的两种方式:(我们的应用程序为 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 预览中,但一旦发布到 instagram 就不起作用。但是 JS 可以。

我们需要使用 PHP 的方法来让流程更高效,那么我们该怎么做呢?

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

4

1 回答 1

3

Instagram 默认删除换行符,不仅通过 API,即使您通过他们的应用手动输入标题也是如此。

您可以通过使用特殊字符而不是标准换行符来解决此问题,例如INVISIBLE SEPARATOR (U+2063). "\u2063\n"如果您查看问题中的 JavaScript 解决方案,他们正在用(Invisible Separator, Line Feed)替换它们的换行符。

我想你可以根据这个答案在你的 PHP 中复制它。

<?php
   $output = "I am line 1 \u{2063}\n I am line 2";
?>
于 2019-01-08T21:38:13.247 回答