当用作安全页面并调用 json_encode() 时,我的 php 脚本会失败,但否则不会。该代码是从一个从 XHR 调用的更大脚本中提炼出来的。PHP 版本 5.2.0.、Apache/1.3.34 (Unix)。
问题来源:PHP、我的 ISP 还是我?
要进行演示,请以 4 种方式调用此脚本:
https://www.camdenac.com/test_json_encode.php?encode=0 => 有效,安全协议,不调用 json_encode()。
https://www.camdenac.com/test_json_encode.php?encode=1 => 失败,安全协议,调用 json_encode()。
在第一种情况下,您将看到一些 html,然后 php 回显结果。在第二种情况下,您只会看到 html;没有php输出。
/*
Try these 2 links also from non-secure protocol.
http://www.camdenac.com/test_json_encode.php?encode=0 => works.
http://www.camdenac.com/test_json_encode.php?encode=1 => works.
*/
<?php
$encode= 0;
if( isset($_GET['encode']) ){
$encode= substr(trim($_GET['encode']),0,1);
}
$dummy= array(1,2,3,4,5);
$json="We did not call json_encode.";
if($encode){
$json= json_encode($dummy);
}
echo '<p>IT WORKS!</p>';
echo '<p>Host protocol is: '.$_SERVER['HTTP_HOST'].'</p>';
echo '<p>Query string is: '.$_SERVER['argv'][0].'</p>';
echo '<p>HTTPS is: '.$_SERVER['HTTPS'].'</p>';
echo '<p>json encoding is: '.$json.'</p>';
echo '<p>Array dump follows:</p>';
var_dump($dummy);
?>