json_encode 可以触发 catch 块吗? [复制]

2024-04-26

这可能是一个非常简单的问题,但我找不到任何相关信息。

我使用的系统聚合了来自不同来源的大量数据,然后将这些数据存储在数据库中。在大多数情况下,系统工作正常,但有时我们会遇到一个问题,即数据可能具有我们的系统不喜欢的笨拙字符编码(例如,当数据采用另一种语言时,如法语)。

数据被传递到我们的处理服务器(我们使用 Gearman),为了确保与源相关的所有信息都被传递,我们使用我们需要的一切对数组进行 json_encode。我的问题是:如果我将 json_encode 包装在 try/catch 块中,是否会导致“PHP 警告:json_encode(): 参数中的无效 UTF-8 序列”消息触发 catch 块激活?

Thanks!


不可以,但是您可以检查函数中的返回值,并在出现问题时抛出异常。您还可以使用json_last_error http://www.php.net/manual/en/function.json-last-error.php获取有关错误的详细信息

Example:

function my_json_encode($data) {
    if( json_encode($data) === false ) {
        throw new Exception( json_last_error() );
    }
}

try {
    my_json_encode($data);
}
catch(Exception $e ) {
    // do something
}

我确实发现它非常烦人,要获取实际的错误消息,您必须检查从返回的常量列表json_last_error()。过去,我使用 switch / case 语句来实现这一点,但您可以根据错误抛出不同的异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

json_encode 可以触发 catch 块吗? [复制] 的相关文章

  • (可选)根据运行时值序列化属性

    从根本上讲 我想根据序列化时的值包含或省略生成的 Json 中的属性 更具体地说 我有一个类型 它知道是否已为其分配了值 并且我只想序列化该类型的属性 如果有 has是分配给它的东西 所以我需要在运行时检查该值 我试图让我的 API 更容易
  • Joomla 模型视图控制器 (MVC) 如何工作?

    我是 Joomla 的新手 我想知道 Joomla 控制器如何将数据传递给模型 模型传递给控制器 以及控制器传递给视图 虽然这可能是一个愚蠢的问题 但我确实试图找到答案 我希望我能从 stackoverflow 大家庭得到一些帮助 控制器获
  • openssl_pkey_get_public 未打开公钥,“无起始行”错误

    当生成公钥然后用函数读取它时openssl pkey get public publicKeyResource bool false 和消息 错误 0906D06C PEM 例程 PEM read bio 无起始行 privateKey o
  • 使用csv文件-PHP创建表到mysql时添加反引号

    我有一个 php 代码 它将使用 csv 文件创建一个到 mysql 数据库的表 然而 某些列标题没有被 mysql 读取 mysql 唯一一次读取查询是当我添加反引号 您能帮助我在查询中的何处添加反引号吗 这是我的代码 file C Us
  • 防止刷新时提交双重表单

    我有一个简单的问题 我知道当用户使用 Post Redirect Get 模式重新加载页面时 我可以防止表单重新提交自身 但我的问题是 如果我将用户重定向回提交表单的同一页面 这种模式是否有效 我的意思是 我不想将用户重定向到另一个页面 请
  • 如何在 PHPWord 中更改纸张大小

    如何更改phpword中的纸张大小 我想将纸张尺寸更改为 Legal 纸张 8 5 英寸 x 14 英寸 我在文档中找不到该选项 我不确定如何应用该规则 并且文档中似乎没有与此相关的 纸张 或 大小 https phpword readth
  • 如何正确转义 mysql“搜索/喜欢”查询?

    Summary 我目前正在使用 search field LIKE this gt db gt escape like str search string 逃避动态创建的搜索查询 创建的 SQL 语句结果不会产生任何错误 也不会产生任何结果
  • 严格标准:在 wordpress/wp-includes/class-oembed.php 第 116 行中,仅应通过引用传递变量

    我已经查看了很多类似的问题 但关于我的代码 我没有得到它 错误 Strict Standards Only variables should be passed by reference in wordpress wp includes c
  • 在选择选项标签中循环 Ajax 响应

    我必须选择多个测试和日期 当根据测试单击提交时 实验室名称将加载到选择选项中 阿贾克斯脚本 name submits click function e e preventDefault var array select selected e
  • html iframe 中的字符错误

    对不起我的英语我说西班牙语 我正在尝试显示多个php and mysql将在 iframe 内显示的注册 问题是 iframe 向我显示特殊字符的错误 例如 重音符号 感叹号等 D ndecuestamenosyseconsumem s 这
  • 如何防止机器人程序和垃圾邮件 API 请求?

    我正在使用react native 开发一个Android 应用程序 该应用程序与我正在为该应用程序开发的API 进行通信 该 API 是使用 Laravel 和 Laravel Passport 构建的 我知道 Android 应用程序可
  • 如何在 MySQL 中存储工作日列表?

    我正在使用编写一个应用程序PHP我需要存储一个独特的工作日列表MySQL 在应用程序中 我有一个数组来存储工作日 如下所示 days Wed Thu Sat 我知道我可以使用SET列 但我不想使用这种类型 因为它与我正在使用的框架 Lara
  • jQuery:评估 ajax 响应中的脚本

    来自我的 web 应用程序的 XML 响应既有要添加到页面的 HTML 也有要运行的脚本 我正在尝试从我的网络应用程序发回 XML 例如
  • 带有 WCF BadContextToken 的 PHP Soap 客户端

    经过几天的谷歌 in 尝试 脱发 我仍然找不到解决方案 所以请帮助 简短信息 我需要使用 PHP SOAP 客户端 的 WCF 服务 它使用 wsHttpBinding ws security 并且无法设置 basicHttpBinding
  • 如何通过 PEAR 安装旧版本的 PHPUnit?

    我想将 PHPUnit 3 4 的安装降级到 3 3 我只是不知道该怎么做 如何使用 PEAR 在 Ubuntu 上安装 PHPUnit 3 3 版本 您需要知道要降级到的确切版本号 在撰写本文时 您所使用的最后一个版本是 3 3 17 可
  • CakePHP 后退和前进按钮没有布局

    我们正在 CakePHP 中构建一个大型 CMS 并集成了 Croogo 安装 我们最近遇到了一个问题 当用户单击back在浏览器中 或forward按钮 您最终得到的是使用以下命令的视图 ctp 文件blank布局 所以没有样式 js 等
  • 如何删除空 html 标签(其中包含空格和/或其 html 代码)

    需要 preg replace 的正则表达式 这个问题没有在 另一个问题 中得到回答 因为并非我要删除的所有标签都不为空 我不仅要从 HTML 结构中删除空标签 还要删除包含换行符以及空格和 或其 html 代码的标签 可能的代码是 删除匹
  • Laravel 5 模型 $cats 到数组 utf-8 JSON_UNESCAPED_UNICODE

    当您有一个数组字段并将其保存在数据库中时 它会对数组进行漂亮的 json encode 但没有 JSON UNESCAPED UNICODE 选项 数据最终如下所示 en u039d u03ad u03b1 这几乎没什么用 解决方案当然是使
  • 如何从存储在变量中的字符串调用函数?

    我需要能够调用一个函数 但函数名称存储在变量中 这可能吗 例如 function foo code here function bar code here functionName foo I need to call the functi
  • 如何使用复杂对象或json在ng-table中添加动态列?

    我有以下 ng table 代码 参见笨蛋 http plnkr co edit oTxkmtAwt22gtO2JDPg4 p preview var app angular module main ngTable controller D

随机推荐

  • 使用 Python 将图片发布到 Tumblr

    我正在尝试使用 python 将图片发布到 tumblr 特别是 http code google com p python tumblr http code google com p python tumblr usr bin pytho
  • 当 android View 在应用程序中可见时是否会触发任何事件?

    我的应用程序包含多个视图 可滚动 其中之一是 CustomView 扩展视图 当此视图进入可见区域时是否会触发任何 android 事件 我在时间范围内使用后台线程的方法onAttachedToWindow to onDetachedToW
  • 如何在Python中从声音中获取Pi-Phase以获得相消干涉

    第一 我不知道该把这个话题放在哪里 因为它是一个编程和声音问题 如果有错误的地方请评论 但这是我的问题 如何将声音加载到 Python 中并创建它的 反向声音 因此 当我播放原始文件和 pi 偏移 文件时 它们会产生破坏性干扰并相互抵消 因
  • Erlang 如何并发处理访问邮箱

    关于如何使用erlang邮箱的信息有很多 但很少找到一篇论文或文档描述erlang如何在VM内部同时实际访问邮箱 据我了解 Erlang VM 必须执行锁定或 CAS 操作以确保消息完整性 erlang幕后有没有什么精巧的方法 我假设您所说
  • Linux C 如何打开目录并获取文件描述符

    include
  • 南迁:“数据库后端不接受0作为AutoField的值”(mysql)

    我是 django 的新手 并试图将外键返回给受让人和记者的用户 但是当我尝试对 South 应用更改时 我收到错误 ValueError The database backend does not accept 0 as a value
  • 如何限制 Glassfish v3 上 MDB 池的大小

    我的消息驱动 Bean 执行高度密集的操作 因此我想限制它的池大小 否则我的服务器会过载 我已经尝试过这个 代码 但它不起作用 它的池仍然是32 根据经验测试 我不时重新启动服务器 因此没有池实例 MessageDriven mappedN
  • 查找通过付费渠道的消息数量

    按照这个page https azure microsoft com en gb pricing details bot service 网络聊天和直线电话被视为优质渠道 我想知道以下事情 在哪里可以找到通过付费渠道传达的付费消息数量 我知
  • React Bootstrap 没有设计我的 React 组件的样式

    昨天刚开始使用 React 因此设置了一个演示应用程序 环境是 打字稿 Webpack 反应和反应 DOM 我正在尝试设置 Bootstrap 样式 我按照本教程进行操作 但对其进行了修改以适应 Typescript https mediu
  • 用 SED 或 PERL 单行匹配并替换多个换行符

    我有一个输入 C 文件 myfile c 如下所示 void func foo void func bar supercrazytag 我想使用 shell 命令插入新的函数原型 这样输出就变成 void func foo void fun
  • Axios 和 VueJS,函数(响应)未设置列表

    我有一个请求获取一些数据并将其添加到变量中 当我使用时 then function response this persons response data 它不分配response data to this persons但是当我执行以下操
  • 如何从 VB.NET 中的存储过程获取返回值

    我在 SQL Server 中有一个存储过程用于生成事务号 任何人都可以帮助我如何从 VB NET 调用存储过程以及如何获取从过程返回到前端的值 问候 乔治 我想你想要这样的东西 Public Sub Foo Using sql As Ne
  • 为什么从 Dropzone.js 发送时 IFormFile 集合为空?

    我正在尝试使用Dropzone js http www dropzonejs com 将 IFormFile 图像 集合发送到以下 ASP NET Core 2 1 Api 控制器操作 HttpPost action public asyn
  • 如何使用 word2vec 找到与向量最接近的单词

    我刚刚开始使用 Word2vec 我想知道如何找到最接近向量的单词 我有这个向量 它是一组向量的平均向量 array 0 00449447 0 00310097 0 02421786 dtype float32 有没有一种直接的方法可以在我
  • 如何处理 ember.js 组件中的自定义事件?

    我是 Ember js 的新手 在理解其原理时遇到了一些问题 我知道行动向上 数据向下但在现实生活中 假设我有Fotorama http fotorama io 在 my gallery 组件中初始化 我不知道这是否可以 但我是在didIn
  • EditText请求焦点

    我正在设计一个登录页面 UserName Password LoginButton 当活动开始时 我希望焦点转到 用户名 文本框并显示键盘 我正在使用以下代码 boolean checkFocus user requestFocus Log
  • 从数据框中删除所有非唯一行

    抱歉 这是我的第二篇文章 如果有什么不明白的地方请告诉我 我正在尝试删除所有有重复项的行 我已经尝试过keep False参数为drop duplicates 它只是没有做正确的事情 假设我的数据框看起来像这样 ORDER ID ITEM
  • 将带有 UIElement 的 FlowDocument 导出为 rtf

    我正在尝试导出一个FlowDocument其中包含一个 rtf 网格 我使用了以下代码 using FileStream fs new FileStream C demo rtf FileMode OpenOrCreate FileAcce
  • 我应该在 Uber 应用程序中放置什么重定向 URL?

    我正在阅读 Uber 的 sdk api 文档 但我是菜鸟 我不知道redirectURL 应该是什么 这是 Uber 提供的给定网址吗 因为我找不到它 或者是由应用程序开发人员部署自己的服务器 本地计算机定制的网页的 URL 如果是的话我
  • json_encode 可以触发 catch 块吗? [复制]

    这个问题在这里已经有答案了 这可能是一个非常简单的问题 但我找不到任何相关信息 我使用的系统聚合了来自不同来源的大量数据 然后将这些数据存储在数据库中 在大多数情况下 系统工作正常 但有时我们会遇到一个问题 即数据可能具有我们的系统不喜欢的