2010-10-01 108 views
0

我想在PHP中使用json_decode()来解码JSON字符串。我的部分JSON字符串中包含HTML标签。例如。 (对于代码的更好的视野去http://gist.github.com/605906使用json_decode()函数解码html标签

$json = '{"productid" : "prod:a8f2d4ef-108e-5fbf-fa74-595ddc0c7950","memo" : "<div style=\"color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-repeat: initial; background-attachment: initial; background-color: #ffffff; background-position: initial initial; margin: 8px;\">WS1CI metered clack valve, 1\" for softener  P/N: V1CIDME-03</div>"}'; 

But I am getting NULL values, when I do

var_dump(json_decode($json)); 

or

var_dump(json_decode($json, true)); 

回答

-3
<?php 
$arr = array(); 
$json = '{"productid" : "prod:a8f2d4ef-108e-5fbf-fa74-595ddc0c7950","memo" : "&lt;div style=\"color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-repeat: initial; background-attachment: initial; background-color: #ffffff; background-position: initial initial; margin: 8px;\"&gt;WS1CI metered clack valve, 1\" for softener P/N: V1CIDME-03&lt;/div&gt;"}'; 


var_dump(json_decode($json, true)); 

?> 

You need to transform all html (like <>&lt;&gt;

+0

这不回答这个问题。会发生什么呢,'print_r'的结果被浏览器解释为HTML,所以结果*似乎是空的,但JSON解码的对象仍然包含正确的字符串,它只是一些HTML不显示任何东西。您的答案允许让浏览器显示实际的HTML代码,但试图将HTML转义的字符串用于其他用途(例如创建DOM元素)可能不会产生预期结果。 – 2014-01-11 06:13:57

1

it works for me. If you get a specific error check your PHP installation, but As of PHP 5.2.0 Json comes by default.

object(stdClass)#99 (2) { 
    ["productid"]=> 
    string(41) "prod:a8f2d4ef-108e-5fbf-fa74-595ddc0c7950" 
    ["memo"]=> 
    string(59) "WS1CI metered clack valve, 1" for softener P/N: V1CIDME-03" 
} 
array(2) { 
    ["productid"]=> 
    string(41) "prod:a8f2d4ef-108e-5fbf-fa74-595ddc0c7950" 
    ["memo"]=> 
    string(59) "WS1CI metered clack valve, 1" for softener P/N: V1CIDME-03" 
} 

Works even for the html.

object(stdClass)#1 (2) { 
    ["productid"]=> 
    string(41) "prod:a8f2d4ef-108e-5fbf-fa74-595ddc0c7950" 
    ["memo"]=> 
    string(328) "<div style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; background-image: initial; background-repeat: initial; background-attachment: initial; background-color: #ffffff; background-position: initial initial; margin: 8px;">WS1CI metered clack valve, 1" for softener P/N: V1CIDME-03</div>" 
} 
0

Have a look at your server's error_log. This might yield to some more information.