2

マーチャントが新製品を追加するとき、通常のテキストを body_html フィールドに入力する限り、うまく機能します。ただし、コピーペーストまたは WYSIWYG エディター ("" を含む) への画像の追加から HTML を追加しようとすると、次のように有名になります。

字句エラー: json テキストに無効な文字があります。

今、彼らは不明なソースから貼り付けている可能性があります.ShopifyAPIに送信する前にbody_htmlをクリーンアップする方法を見つけた方法はありますか?

ちなみに、私はPHPとwcurl.php https://github.com/sandeepshetty/wcurlを使用しています

アップデート:

字句エラー: json テキストに無効な文字があります。

              "{"product":{"title":"Sample Event
    (right here) ------^

コードサンプル:

$shopify_data = array
(
   "product"=>array
   (
     "title"=>$rs->product_title,
     "body_html"=>$rs->product_details,
     "vendor"=>"My Companay",
     "product_type"=>"Laptop"
   )
);

foreach ($variant as $key => $value) {
  $shopify_data["product"]["variants"][$key] = array(
    "option1"=> $value->variant_name,
    "price"=> $value->price,
    "requires_shipping"=>'true',
    "inventory_management"=>"shopify",
    "inventory_quantity"=> $value->quantity
  );
}

// $shopify_data = json_encode($shopify_data);  // This does not work either.
$shopify_data = stripslashes(json_encode($shopify_data));
4

1 に答える 1

2

私がこれを正しく理解していれば、解決策は次のとおりです。

stripslashes(json_encode($params))

Shopify クライアントでこれを行います: https://github.com/sandeepshetty/shopify_api/blob/1f538276e690bd7b95f9cbb4007576ecb2d3f6de/client.php#L52

注: PHP 5.4.0 には、これに対するオプションがjson_encodeにあります。

于 2012-09-24T19:58:46.187 に答える