第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用插值變量注入 JSON 字符串不起作用

使用插值變量注入 JSON 字符串不起作用

PHP
縹緲止盈 2022-01-08 20:45:34
我正在使用Rocketium API來自動生成視頻。為了準備視頻中使用的“場景”,我從數(shù)據(jù)庫表中的行構(gòu)建了一個 JSON 字符串:foreach ($products as $product) {    if ($product['image_one_url']) {        $product_image = $product['image_one_url'];    } else {        $product_image = 'no_image.png';    }    $string[] = [        "text" => $product['product_name'],        "image" => $product_image    ];}$string = json_encode($string, JSON_UNESCAPED_SLASHES);$string = addslashes($string);現(xiàn)在我正在使用這個字符串并嘗試使用插值變量將其插入此處:curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"videoBackground\": \"background.jpg\", \"audio_mood\": \"inspirational\", \"logoImage\": \"logo.png\", \"title\": \"Products\", \"themeId\": \"5a15310cabc5e17e6bf29525\", \"scenes\": {$string}}");出于某種原因,這對我不起作用,盡管當我將我的 JSON 字符串與一個工作示例進行比較時,它看起來是相同的格式:curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"videoBackground\": \"background.jpg\", \"audio_mood\": \"inspirational\", \"logoImage\": \"logo.png\", \"title\": \"Products\", \"themeId\": \"5a15310cabc5e17e6bf29525\", \"scenes\": [{\"text\" : \"{Hello there\", \"image\" : \"https://rocketium.com/videos/1234567890/resized/abcdefgh.mp4\", \"fontSize\" : \"14px\"}, { \"text\" : \"Slide 2 goes here\", \"image\" : \"https://rocketium.com/videos/1234567890/resized/abcdefgh.mp4\" }, { \"text\" : \"Slide 3 here\", \"image\" : \"https://rocketium.com/videos/1234567890/resized/abcdefgh.mp4\" }, { \"text\" : \"Slide 4 here\", \"image\" : \"image_goes_here.jpg\" }]}");我添加了斜線和所有內(nèi)容。這是插值變量的問題還是我缺少的其他問題?
查看完整描述

2 回答

?
慕雪6442864

TA貢獻1812條經(jīng)驗 獲得超5個贊

與其嘗試將一個字符串塞入另一個字符串,而是手動轉(zhuǎn)義引號并希望獲得最好的結(jié)果,而是使用數(shù)據(jù)結(jié)構(gòu)并僅在完成后轉(zhuǎn)換為 JSON。


像這樣的東西:


foreach ($products as $product) {


    if ($product['image_one_url']) {

        $product_image = $product['image_one_url'];

    } else {

        $product_image = 'no_image.png';

    }


    $string[] = [

        "text" => $product['product_name'],

        "image" => $product_image

    ];


}


$template = json_decode("{\"videoBackground\": \"background.jpg\", \"audio_mood\": \"inspirational\", \"logoImage\": \"logo.png\", \"title\": \"Products\", \"themeId\": \"5a15310cabc5e17e6bf29525\"}");


$template['scenes'] = $string;


// Now you can encode the whole thing to JSON in one go

curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($template));


查看完整回答
反對 回復 2022-01-08
?
手掌心

TA貢獻1942條經(jīng)驗 獲得超3個贊

我只是要告訴你為什么你的代碼不起作用。因為您實際上向json 字符串注入了額外的反斜杠,而在工作示例中,沒有真正的反斜杠(它們只是出現(xiàn)在代碼中以告訴 PHP 下一個字符是雙引號而不是結(jié)束字符)

這個字符串"\""只包含一個雙引號,而這個字符串'\"'包含一個反斜杠和一個雙引號

工作示例中的場景屬性實際上包含這個

 $scenes = '[{"text":"Definitions","image":"vesa_definitions.jpg"}]';

但這就是您通過使用所做的 addslashes()

 $scenes = '[{\"text\":\"Definitions\",\"image\":\"vesa_definitions.jpg\"}]';


查看完整回答
反對 回復 2022-01-08
  • 2 回答
  • 0 關(guān)注
  • 172 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號