php向微信公众平台上传带有多张图片的图文消息时内容丢失该如何解决?
1,问题:
将wordpress中的一篇文章作为永久素材上传到微信:
当文章中只有一张图片时,可以正常上传,且在微信公众平台查看此素材时,文字内容、图片都可以完整显示。
在文章中再添加一张图片(文章图片大于1张时),在微信后台查看此素材时发现文章不完整:从第一张图片开始以后的内容全部丢失。
补充说明:
(1)自己写了个插件,可以将wordpress文章上传到微信素材库。
主要过程:curl抓取文章中的图片并上传到微信素材库,获取url然后将wordpress文章中的图片src做相应替换。
然后构造图文消息json字符串上传到微信。
(2)wordpress文章中不添加任何样式,仅有
、标签
2,代码:
<code>// 上传图文消息代码 $raw = Curl::curl_post_wx( 'https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=' . $token, self::json_article( $post_ids, $token ), false ); /** * 将文章内容构造成json字符串 * * @param array $post_ids * @param string $token * @return string json */ private function json_article( $post_ids, $token ) { $mp_article = '{"articles":['; foreach ( $post_ids as $post_id ) { $post = get_post( $post_id ); $post_urls = self::preg_match_src( $post->post_content ); if ( $post_urls ) { // 如果文章中有图片,将文章中的图片上传至微信素材库 foreach ( $post_urls as $post_url ) { if ( strpos( $post_url, 'qpic.cn' ) === false ) { // 如果图片没有上传到微信服务器 $res = Curl::curl_post_wx( 'https://api.weixin.qq.com/cgi-bin/material/add_material?' . 'access_token=' . $token . '&type=image', false, Curl::curl_get_img( $post_url ) ); //替换文章内容img中的src地址 $post->post_content = str_replace( $post_url, $res['url'], $post->post_content ); } $post->post_content = str_replace( '"', '\"', $post->post_content ); } } // 获取缩略图并上传 // 相应的code省略 // 构造json $mp_article .= '{ "title": "' . $post->post_title . '", "content_source_url": "' . get_permalink( $post_id, false ) . '", "thumb_media_id": "' . $thumb_res['media_id'] . '", "content": "' . htmlspecialchars_decode( $post->post_content ) . '", "show_cover_pic": 0, '; if ( !empty($post->post_excerpt ) ) { $mp_article .= '"digest": "' . $post->post_excerpt . '",'; } $mp_article .= '},'; } return rtrim($mp_article, ',') . ']}'; }</code>
3,报错信息:微信未返回错误信息。
4,截图:无。
5,其他参考:
在CSDN上看到过tilun_099遇到过类似的问题:http://bbs.csdn.net/topics/39...。
tilun_099的问题是:“在上传多图文素材时如果content的内容是纯文本是,可以上传成功,得到media_id,然后通过群发接口,手机可以正确获得多图文信息。可是如果content里面的内容含有html的标签,如

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

在PHP8 中,match表达式是一种新的控制结构,用于根据表达式的值返回不同的结果。1)它类似于switch语句,但返回值而非执行语句块。2)match表达式使用严格比较(===),提升了安全性。3)它避免了switch语句中可能的break遗漏问题,增强了代码的简洁性和可读性。

H5、小程序和APP的主要区别在于:技术架构:H5基于网页技术,小程序和APP为独立应用程序。体验和功能:H5轻便易用,功能受限;小程序轻量级,交互性好;APP功能强大,体验流畅。兼容性:H5跨平台兼容,小程序和APP受平台限制。开发成本:H5开发成本低,小程序中等,APP最高。适用场景:H5适合信息展示,小程序适合轻量化应用,APP适合复杂功能应用。

公司安全软件与应用兼容性问题及排查方法许多企业为了保障内网安全,会安装安全软件。然而,安全软件有时...

在PHP中可以通过使用不可预测的令牌来有效防范CSRF攻击。具体方法包括:1.生成并在表单中嵌入CSRF令牌;2.在处理请求时验证令牌的有效性。

在PHP中,final关键字用于防止类被继承和方法被重写。1)标记类为final时,该类不能被继承。2)标记方法为final时,该方法不能被子类重写。使用final关键字可以确保代码的稳定性和安全性。
