【问题标题】:Encoding new line into youtube video description update via API通过 API 将新行编码到 youtube 视频描述更新中
【发布时间】:2013-05-13 10:05:51
【问题描述】:

我正在尝试通过 API 以编程方式更新我的 youtube 频道上的大量视频,因为我还想将视频信息存储在我的网站数据库中。

一切正常,除了我在描述字段中渲染新行时遇到了问题。

我正在以 html 形式编写描述,但是我想在每个视频中添加一个段落,因此我在 XML 请求数据中添加了如下:

'<media:description type="plain">'.$form->description." \n\n ".'This is the text I want automatically added to each video.
</media:description>'

我的表单数据中的新行很好,它只是最后一段之前的新行。

我尝试了 \n 和 \r 的各种组合,但这似乎不起作用。

【问题讨论】:

标签: php xml youtube-api


【解决方案1】:

检查您使用的字符集(代码表)。可以是默认的,也可以是自己设置的。 例如 ASCII(编码时)或 UTF-8(发送和接收数据传输时)。 然后使用 PHP 函数在它们之间进行转换。例如 iconv()。 另见Convert utf8-characters to iso-88591 and back in PHP。 如果使用 ASCII,那么您可以使用函数 chr(10) 插入“换行符”。 以及带有函数 chr(13) 的“回车”。

【讨论】:

    【解决方案2】:

    我找到了一种方法:只需使用 PHP_EOL 来编码换行符 ;-)

    【讨论】:

    • 您可以发布参考链接和示例以增强您的答案;)
    • 我的 PHP 核心库显示 define('PHP_EOL', "\n");,而这正是 Dave 已经在使用的。我不认为这会有所帮助。
    【解决方案3】:

    您是否尝试将其放入 CDATA 元素中?

    '<media:description type="plain"><![CDATA[' . $form->description . "\n\n" .
    'This is the text I want automatically added to each video.]]></media:description>'
    

    也许它只是被 YouTube API 解析掉了,只要它没有被标记为 raw

    你也可以试试:

    '<media:description type="plain"><![CDATA[' . $form->description . '<br/><br/>' .
    'This is the text I want automatically added to each video.]]></media:description>'
    

    ...如果 API 支持 HTML 格式。通过将其放在 CDATA 元素中,您无需对其进行转义。

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 2011-09-19
      • 1970-01-01
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2019-10-06
      相关资源
      最近更新 更多