将 html 放入无效的 json


Invalid Json putting html within

我试图将html内容放在json中,它坏了。

我的无效 JSON https://i.stack.imgur.com/051Yx.png

{
    "item": {
        "title": "Japanese investors back Lookup, a messaging app for local shopping in India",
        "desc": "An infusion of US$116,000 from Japan's social games company DeNA and Teruhide Sato, founder of BEENOS, takes the three-month-old startup'u2019s seed funding to US$382,000.",
        "link": "https:'/'/www.techinasia.com'/dena-teruhide-sato-beenos-fund-lookup'/",
        "content": "<p><img src="https: '/'/www-techinasia.netdna-ssl.com'/wp-content'/uploads'/2015'/01'/lookup-app-main-720x289.jpg" alt="lookupappmain" width="720" height="289" class="aligncentersize-largewp-image-213938" '/><'/p>'n<p>Bangalore-based instant messaging app <a href="https: '/'/www.techinasia.com'/tag'/lookup'/">Lookup<'/a> – a Craiglist cum WhatsApp for local businesses – just got its third dose of seed funding. Japan&#8217;s leading social games company <a href="https: '/'/www.techinasia.com'/tag'/dena'/">DeNA<'/a> and Teruhide Sato, founder of BEENOS group, a global conglomerate with ecommerce holdings and a business incubator, invested US$116,000 into this three-month-old startup founded by Deepak Ravindran, a young serial entrepreneur.<'/p>'n<p>“Both our recent investors have strong footholds in the mobile space and have successfully led innovations in Japan,” says Ravindran, suggesting that the investors would be giving Lookup more than just funding.<'/p>'n<p><a href="http: '/'/www.lookup.to">Lookup<'/a> lists businesses, restaurants, and even police stations for users to connect with. Unlike Craigslist or JustDial which would give you a number to dial, Lookup lets you shoot off a message to the local businesses without leaving the app. You can find prices and availability of products or services at local businesses, book appointments at salons, or make reservations at restaurants with this app. Any store or restaurant using Lookup can then respond instantly.<'/p>'n<p>Lookup has a call center tracking the messages to ensure that its users receive responses immediately, even if a store is not using the app. “Our guarantee is that you get answers within five minutes. We do this by employing dedicated people for handling your request. Lookup’s call center fields your responses, calls up stores, and types answers back to you in real-time. No calling, no waiting,” Ravindran told <em>Tech in Asia<'/em>.<'/p>'n<p>To celebrate the latest funding from Japanese investors, Lookup is gifting free sushi for a week to new users from Bangalore who download the app. For this, it has tied up with two Japanese restaurants Shiro and Ginseng.<'/p>'n<p>With this latest infusion, Lookup’s seed round of venture capital funding closed at US$382,000. It had earlier bagged US$166,000 from tech billionaire Kris Gopalakrishnan, co-founder of Indian IT bellwether Infosys, and US$100,000 from MKS Switzerland SA, a precious metals and financial services group of companies.<'/p>'n<p><center><strong>See: <a href="https: '/'/www.techinasia.com'/college-dropout-turned-mit-top-innovator-rolls-craigslist-whatsapp-app-local-shopping-india'/">College dropout turned MIT top innovator rolls Craigslist and WhatsApp into one app for local shopping in India<'/a><'/strong><'/center><'/p>'n<p>This post <a href="https: '/'/www.techinasia.com'/dena-teruhide-sato-beenos-fund-lookup'/" title="JapaneseinvestorsbackLookup,
        amessagingappforlocalshoppinginIndia">Japanese investors back Lookup, a messaging app for local shopping in India<'/a> appeared first on Tech in Asia.<'/p>"
    }
}

我在 PHP 中做了什么

$arr = array();
$arr["item"]["content"] = $content; // $content is dynamic, scrapped from somewhere
echo json_encode($arr, true);

我尝试了htmlentities和addcslashes($item_content,'"'),但对这项工作毫无意义。

这是因为图像标签中的"符号。您可以使用 HTML 实体函数对其进行编码 en 解码函数对其进行解码。

一种更简洁的方法是将图像 url 保存在项目的不同属性中。

你没有转义内容中的引号(") - 这意味着你的内容字符串只是"<p><img src=",然后PHP对其余的东西感到困惑。

您需要将其更改为:

"content": "<p><img src='"https: '/'/www-techinasia.netdna-ssl.com'/wp-content'/uploads'/2015'/01'/lookup-app-main-720x289.jpg" alt='"loo...More content..."

(我在不结束字符串的引号之前添加了 '' - 将来 - 寻找语法突出显示 - 如果事情改变颜色而你没有期望变量的结束 - 那么出了点问题)

如果你想用PHP做到这一点 - 你可以使用HTML实体函数(http://php.net/htmlentities)或简单地使用addslashes函数(http://php.net/manual/en/function.addslashes.php)

例如

<?php $str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt; echo
htmlentities($str);
// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt; echo
htmlentities($str, ENT_QUOTES); ?>`

[引用:PHP手册]

<?php $str = "Is your name O'Reilly?";
// Outputs: Is your name O''Reilly?
echo addslashes($str); ?>

[引用:PHP手册]