jjzjj

php json_encode 将utf8字符串转为字符编码

我有一个波斯语文本“سرما”然后当我使用json_encode()将其转换为JSON时,我得到了一系列转义字符代码,例如\u0633,这似乎是预期的并且是理性的过程。但我的困惑在于我不知道如何将它们转换回可读的字符串。我应该如何在PHP中执行此操作?我应该使用mb_*家族的任何东西吗?我还检查了json_encode()参数,但没有找到适合我的东西。更新我保存在我的数据库中的是:[“u0633u0631u0645u0627”]这表明字符没有正确转义。而如果我把它改成["\u0633\u0631\u0645\u0627"]通过json_decode()可以轻松读取

PHP: json_decode(json_encode($xml));

我在阅读一些代码时看到了下面这行$obj=json_decode(json_encode($xml));$xml来自simplexml_load_string所以对我来说这行相当于$obj=$xml;看似不必要的编码和解码可能是什么原因? 最佳答案 如果$xml是一个SimpleXml对象,您不能直接访问它的某些属性。这是一个用于将SimpleXml对象转换为经典对象并访问其所有属性的技巧:)此外,您可以传递一个bool参数来获取数组而不是对象:json_decode(json_encode($xml),true);

php - json_encode 返回浮点值,就好像它是

我需要将数组转换为json并希望保留数据的精度和类型。$a=array("num"=>10000.00);print_r(json_encode($a));在上面的例子中,10000.00被转换为10000。我怎样才能保留json中的所有内容。 最佳答案 在php5.6+中你能做的最好的事情就是确保它被编码为float。但是,这并不能保持精度:10000.00);print_r(json_encode($a,JSON_PRESERVE_ZERO_FRACTION));如果数据类型和精度很重要,您需要发送一个额外的参数,例如:$a=[

php - 在什么场景下使用json_encode()比使用serialize()更好?

这就是我要问的全部内容。查看PHP手册,看到一个用户帖子说serialize比json_encode慢45-90%(他运行了一些基准测试)。但是“慢”到底有多慢呢?我可以找到很多“对抗”的东西,但没有一个像我这样的初学者可以涉及。我刚刚写了一个脚本,用json编码一个数组,另一个脚本解码它。我对序列化做了同样的事情。显然,这不会告诉我它们之间有任何显着差异。 最佳答案 (每次)执行10,000次,以(希望)对内存使用和CPU时间的差异有一个可衡量的想法。大多数情况下,性能方面的差异并不显着。在两种特定情况下使用JSON非常有用:返回

php - 如何在没有 PHP 5.2 的情况下使用 json_encode

我编写了一个CMS,它使用PHP函数json_encode通过Ajax请求发回一些数据。不幸的是,我试图将它加载到运行PHP5.1版的服务器上,json_encodePHP函数在5.2.0之前的PHP版本上不可用。有谁知道不使用内置的json_encode函数就可以将PH数组编码为JSON的方法吗?编辑我用过Pekka的函数,但现在我发现JQuery不会按预期解析结果。即使Firebug显示JSON被传回。我的Firebug窗口如下所示:我的jquery看起来像这样:$.ajax({type:"GET",url:"includes/function/add_users.php",dat

javascript - jQuery.ajax 为什么不从 php json_encode 访问该项目?

我不明白,因为当数据输入到登录名时是正确的,我做了这个比较response.success=="success"没有任何反应,我用firebug检查,结果是这样的:响应[{"ncontrol":"09680040","nombre":"Edgardo","apellidop":"Ramirez","apellidom":"Leon","tUser":"Admin","status":"success"}]jQuery.ajax脚本发送数据//jQuery.ajaxscripttosendjsondatatophpscriptvaraction=$("#formLogin").attr(

php - 带有生成的 PHP 数组的 json_encode 中的空值

我一直在查看适用于PHP的简单htmldom,它运行良好。问题是当我尝试将返回值添加到PHP数组时。我有一个示例,您可以在其中看到结果http://fae.ctrl.fo/plane_script/下面的脚本提供了来自该链接的数据。find('tr[class^=FlightScheduleItem]')as$tr){$row=array();foreach($tr->find('td')as$td){echo$td->innertext."";$row[]=$td->innertext;}$resultSet[]=$row;}echo"";echo$_GET['callback'].

php - AWS S3 查询字符串授权

背景我正在尝试创建一个签名url以从AWSS3获取资源。有severalexamplesinawss3documentation,作为第一步,我尝试复制该页面上的最后一个示例。我的代码是:$access_key="AKIAIOSFODNN7EXAMPLE";$secret_key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";$string_to_sign="GET\n\n\n1175139620\n/johnsmith/photos/puppy.jpg";$encode=hash_hmac('sha1',utf8_encode($string_

php - json_encode 在 array_filter 之后有不同的结果

我希望json_encode返回这样的内容[{key:"value"},{key:"value"},...]相反,我得到的是这样的:{"1":{key:"value"},"2":{key:"value"},...}结果很好,直到我做了一个array_filter...奇怪...functionsomefunction($id,$ignore=array()){$ignorefunc=function($obj)use($ignore){return!in_array($obj['key'],$ignore);};global$db;$q="Somequery";$rows=$db->g

数据库上的 PHP json_encode utf-8 问题

我遇到了一个问题。我使用json_encode并在我上传到数据库后。我的文件是utf8,我的数据库也是。但是在我的数据库中有一些\u00e9我不知道为什么......编辑:有一个简单的代码:$toast=array();for($i=0;$i这行不通我怎么能打印一个简单的充满'é'字符的数组...编辑2:这段代码:$toast=array();for($i=0;$i输出:["\u00e9","\u00e9","\u00e9","\u00e9","\u00e9","\u00e9","\u00e9","\u00e9","\u00e9","\u00e9","\u00e9"]我想要:["é",