我们正在发布到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方法来提高流程效率,那么我们该怎么做呢?
很抱歉,如果缺少信息;该项目是机密的,因此我们可以在必要时提供更多信息:请问一下,我会编辑问题。
答案 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";
?>