我正在发布到使用PHP curl返回HTML的API端点。当我回应响应时,它以纯文本形式打印而不是呈现为HTML。
标题是正确的,因为如果我回显一串HTML,它会正常呈现。
有关如何渲染它的任何想法吗?
$url = 'https://inlinestyler.torchbox.com/styler/convert/';
$myvars = 'source_url=XXXXXXXXXX&returnraw=1';
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec( $ch );
// Plaintext
echo $content;
// Shows HTML
echo '<h1>Testing</h1>';
答案 0 :(得分:1)
如果您在浏览器中向该API端点发出POST请求,然后检查它在开发工具网络面板中获得的响应,您将看到API响应已经在表单中
<html>
<head>
<title>Example Domain</title>
etc.
因此,从此API返回的内容不是“纯”HTML,而是将特殊字符<
和>
写成HTML实体的HTML - 以及 为什么您将获得显示的代码,而不是呈现的结果。
将html_entity_decode
应用于您通过echo输出的字符串值,可以轻松解决此问题。