发布到instagram时换行符不一致

时间:2019-01-08 21:11:38

标签: javascript php instagram hootsuite

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

我们已经创建了一个服务器端应用程序,该应用程序可以使用Hootsuite创建和安排帖子,并可以通过Twitter,Instagram和Facebook进行发布。

说这是否是帖子:

我是第1行。

我是第2行。

我是3。

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

我是第1行,我是第2行,我是第3行。

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

我们注意到,如果将帖子发送到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预览中使用,但是一旦发布到instagram后就无法使用。但是JS可以。

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

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

1 个答案:

答案 0 :(得分:0)

默认情况下,Instagram不仅会通过API删除换行符,甚至会在您通过其应用手动键入标题时删除换行符。

您可以使用特殊字符代替标准的换行符来解决此问题,例如INVISIBLE SEPARATOR (U+2063)。如果您看问题中的JavaScript解决方案,他们将用"\u2063\n"(不可见分隔符,换行符)替换换行符。

我想您可以基于this answer在PHP中复制它。

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