cURL响应HTML以纯文本而非呈现HTML的形式回显

时间:2016-05-18 19:56:08

标签: php curl

我正在发布到使用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>';

1 个答案:

答案 0 :(得分:1)

如果您在浏览器中向该API端点发出POST请求,然后检查它在开发工具网络面板中获得的响应,您将看到API响应已经在表单中

&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Example Domain&lt;/title&gt;
etc.

因此,从此API返回的内容不是“纯”HTML,而是将特殊字符<>写成HTML实体的HTML - 以及 为什么您将获得显示的代码,而不是呈现的结果。

html_entity_decode应用于您通过echo输出的字符串值,可以轻松解决此问题。