ホームページ  >  記事  >  バックエンド開発  >  _WeChatインターフェース経由でグラフィック素材をアップロードする際のhtmlタグとの競合について。

_WeChatインターフェース経由でグラフィック素材をアップロードする際のhtmlタグとの競合について。

WBOY
WBOYオリジナル
2016-06-23 13:47:591173ブラウズ

WeChat での開発を始めたばかりですが、ここ数日、WeChat の高度なグループ送信インターフェイスを勉強しているときに問題が発生しました。
ドキュメントの例:
{
"articles": [
{
"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZ iq2OsIU-p",
"author":"xxx",
" title":"ハッピーデイ"、
" content_source_url":"www.qq.com",
"content":"content",
"digest":"digest",
"show_cover_pic":"1"
},
{
"thumb_media_id":"qI6_Ze_6PtV7svjolgs - rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p",
"author":"xxx",
"title":"Happy Day",
"content_source_url":"www.qq.com",
"content":"content",
" Digest":"digest",
"show_cover_pic":"0"
}
]
}
複数の画像とテキスト素材をアップロードする場合、コンテンツがプレーンテキストであればアップロードは成功し、media_id が取得できます、その後、グループ送信インターフェイスを通じて、携帯電話は複数の画像とテキスト情報を正しく取得できます。
ただし、コンテンツ内に

などのhtmlタグが含まれている場合、アップロード後にmedia_idは取得できますが、一括送信後、携帯電話は
単一の画像とテキストを取得します。この単一の画像テキストには画像、タイトル、リンクが含まれていますが、特定のコンテンツはありません。つまり、中身は空です。
以下のコードでは、$news は複数の画像とテキストの配列であり、json_encode 前方配列に対して urlencoding を実行しました。
foreach ($news as &$item){
foreach ($item as $k=>$v){
$item[$k]=urlencode($v)
}
}

$data=array ("articles"=>$news);
$data=json_encode($data);


ディスカッションへの返信 (解決策)

json_encode の前に配列を URL コード化しないと、複数の画像やテキストを受信した場合、画像、テキスト、タイトルなどは正常に表示されますが、画像やテキスト内の特定の内容は「u56fdu4f01u4e1au6240u5f97u7a0eu6cd5u5b9eu65bdu6761u4f8bu300bu7b2cu4e5du5341u4e8cu6761u89c4u5b9auff」となります。 0c……」、もしかしてWeiboレターサーバー?アップロードされた画像やテキスト情報を受け取った後、json_decodedされないのでしょうか?
理解できません。

オンラインで待っています、助けてください!

誰も答えてくれませんでしたが、ようやく解決しました。
コンテンツの内部スペースに HTML タグが含まれている場合、コンテンツをエスケープする必要があります。このように、style=".." や "" を含むコンテンツが含まれている場合は、
さらに注意する必要があります。
foreach ($news as &$item){
foreach ($item as $k=>$v){
if($k =='content'){
$item[$k] = urlencode(htmlspecialchars( str_replace(""","'",$v)));
}else{
$item[$k] = urlencode($v);
}
}
}
は HTML の "" を引用符で囲みます。最初に単一の引用符になり、htmlエンティティに変換しますurldecode($data) を使用した urldecode


;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。