我尝试使用Walmart API显示有关产品的一些信息。
API返回一个json对象,我将其转换为常规数组,并使用echo来显示此数据。
问题是,当我从API获取longDescription
变量时,它包含HTML - 这很好,但它没有被渲染,而是将它全部显示为纯文本。这是我的代码:
echo "<p id='longDescription'>";
echo $obj['longDescription'];
echo "</p>";
这是$obj['longDescription']
变量中包含的内容:
<br><b>HP 15-ay039wm 15.6" Laptop:</b><br><br><b>Key Features and Benefits:</b>
<ul>
<li>15.6" Display<br>HD (1366 x 768) SVA Brightview WLED-backlit Display<br><br></li>
<li>Intel Core i3-6100U Dual-Core Processor<br>2.3GHz<br><br></li>
<li>8GB system memory<br>Gives you the power to handle most power-hungry applications and tons of multimedia work<br><br></li>
<li>1TB Hard Drive<br>Store 666,000 photos, 285,000 songs or 526 hours of HD video and more<br><br></li>
<li>6 hours of battery life<br>Long-lasting battery life gives you plenty of access to your photos, videos, music and documents<br><br></li>
<li>Intel HD Graphics 520<br>With up to 4169MB of graphics memory<br><br></li>
<li>Weight: 4.73 lbs<br>Thin design you can easily take on the road<br><br></li>
<li>SuperMulti DVD burner<br>Watch movies and read and write CDs and DVDs in multiple formats<br><br></li>
<li>10/100 Base-T Ethernet, 802.11ac Wireless LAN<br>Connect to a broadband modem with wired Ethernet or wirelessly connect to a WiFi signal or hotspot with the 802.11ac connection built into your PC</li>
</ul>
<br><b>Additional Features:</b>
<ul>
<li>HP TrueVision HD Webcam</li>
<li>Multi-Format Digital memory card reader</li>
<li>Bluetooth</li>
<li>1 x USB 3.0 port, 2 x USB 2.0 ports, 1 x HDMI out port, 1 x audio out/in jack, 1 x RJ-45 Ethernet port</li>
<li>3-cell lithium-ion battery</li>
<li>Dimensions: 0.95" x 15.12" x 10.02"</li>
<li>Color: Silver</li>
</ul>
<br><b>Software:</b>
<ul>
<li>Genuine Microsoft Windows 10</li>
<li>McAfee LiveSafe (30-day trial)</li>
<li>Backup and Restore options built into Windows allow you to create safety copies of your most important personal files, so you're always prepared for the worst</li>
</ul>
<br><b>Support and Warranty:</b>
<ul>
<li>1-year limited hardware warranty; 24/7 technical assistance available online or toll-free by phone</li>
<li>Restore discs are not included (unless specified by supplier). We recommend you use the installed software to create your own restore and backup DVD the first week you use the computer.</li>
</ul>
<br><b>What's In The Box:</b>
<ul>
<li>Power cord and AC adapter</li>
<li>3-cell battery</li>
<li>Quick Start Guide</li>
</ul>
<br><b><i>To see the manufacturer's specifications for this product, click <a href="http://i.walmart.com/i/rb/0088989980651.pdf" target="_blank">here</a>.<br><br>To see a list of our PC Accessories, click <a href="http://www.walmart.com/cp/accessories-peripherals/132959" target="_blank">here</a>.<br><br>Trade in your used computer and electronics for more cash to spend at Walmart. Good for your wallet and the environment - click <a href="http://gazelle.com/register_click?campaign=electronics_trade_in&media_type=text&network=walmart&destination_url=http%3A%2F%2Fwalmart.gazelle.com&placement=product_computers&creative=learn_more" target="_blank">here</a>.</i></b><br><br><b>ENERGY STAR<sup>®</sup></b><br>Products that are ENERGY STAR-qualified prevent greenhouse gas emissions by meeting strict energy efficiency guidelines set by the U.S. Environmental Protection Agency and the U.S. Department of Energy. The ENERGY STAR name and marks are registered marks owned by the U.S. government, as part of their energy efficiency and environmental activities.
我不确定从哪里开始或做什么,我以前从未遇到过这个问题。
如何将此变量输出为呈现的HTML?
答案 0 :(得分:3)
尝试使用 html_entity_decode()
Convert all HTML entities to their applicable characters
更确切地说,此函数解码所有实体(包括所有实体) 数字实体)a)必然对所选择的有效 文档类型 - 即,对于XML,此函数不解码命名 可能在某些DTD中定义的实体 - 和b)其特征或 字符在与所选字符集相关联的编码字符集中 编码并在所选文档类型中允许。所有其他 实体保持原样。
答案 1 :(得分:0)
输出可能是用
呈现的 <
输出“&lt;”。这很可能是你的问题。
您可以使用php函数
htmlspecialchars_decode()
希望这有助于:)
答案 2 :(得分:-1)
为了呈现 html,您必须对其进行解码。
这里我提到了一些解码它的功能。
wp_specialchars_decode()
如果您使用的是 WordPres。htmlspecialchars_decode()
普通 PHP 函数。html_entity_decode()
也是,普通的 PHP 函数。解决方案:
<?php
// This work for me:
echo wp_specialchars_decode($your_html_code, ENT_QUOTES);
// try this if above code doesn't work
// echo htmlspecialchars_decode($your_html_code);
// try this if above code doesn't work
// echo html_entity_decode($your_html_code, ENT_HTML5);
?>
其余两个函数的灵感来自 @Roy Bogado 和 @Firelumet 的回答。