2013-05-18 102 views
0

我試圖通過API以編程方式更新我的YouTube頻道上的大量視頻,因爲我也想將視頻信息存儲在我的網站數據庫中。通過API將新行編碼爲YouTube視頻說明更新通過API

一切工作正常,除非我真的有麻煩在描述字段中呈現一個新行。

我寫在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的各種組合,這似乎沒有工作。

+0

什麼確定'$ form-> description'中的換行符?找出來,並將其用於其他換行符,我會說,你應該沒問題。 – hakre

+0

如何讀取該字段的原始內容(包括任何字符創建新行)? – DaveR

+0

請參閱:[如何獲得PHP中字符串的十六進制轉儲?](http://stackoverflow.com/q/1057572/367456)對於某些PHP變體,如果您[使用Linux,有一個程序稱爲'hexdump'和朋友](http://stackoverflow.com/q/2614764/367456)。 – hakre

回答

0

檢查您正在使用哪些字符集(代碼表)。無論是默認還是自己設置。 例如ASCII(編碼時)或UTF-8(發送和接收數據傳輸時)。 然後使用PHP函數在它們之間進行轉換。例如iconv()。 另請參閱Convert utf8-characters to iso-88591 and back in PHP。 如果使用ASCII,則可以使用函數chr(​​10)插入'換行符'。 並帶有函數chr(​​13)的'回車'。

0

我找到了一種方法:只需使用PHP_EOL編碼斷行;-)

+2

你可以發佈一個鏈接到引用和一個例子來增強你的答案; – mathielo

+0

我的PHP核心庫說'define('PHP_EOL',「\ n」);'這就是Dave已經使用的。我不認爲這會有所幫助。 – flu

0

你試過把它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只要解析遠,因爲它沒有標記爲原料

您也可以嘗試:

'<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元素中,您不需要轉義它。