我在使用file_get_contents()
时遇到了问题。
我POST
使用file_get_contents()
将数据格式化为远程脚本,并且适用于短格式(即$postdata < 1024
),但是当我的表单内容超过1024
时} chars($postdata > 1024
)然后file_get_contents()
与远程脚本通信时出现问题,总是返回一个空字符串(非假)
并且远程脚本没有任何问题,因为测试我甚至修改它只返回“OK”,但正如我对$postdata > 1024
说的那样 - 我得到的只是一个空字符串(和遥控器)脚本没有做它应该做的事情)
这是代码:
$postvals = array(
'from' => 'Test <test@test.com>',
'to' => 'test2@test.com,
'subject' => 'Test',
'body' => $mail_html_content
);
$postdata = http_build_query($postvals);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => array(
'Connection: close',
'Content-type: application/x-www-form-urlencoded',
'Content-Length: '.strlen($postdata),
'Custom-header: test'),
'content' => $postdata,
'timeout' => 40
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://test.com/script.php', false, $context, -1, 40000);
BTW我的服务器post_max_size
设置为100M
phpinfo()
未报告任何1024
或1k值(log_errors_max_len 1024
除外)
这个脚本可能存在问题? (我不喜欢使用curl)
答案 0 :(得分:0)
我已经在我的服务器上使用50Mb文件测试了您的脚本,并且它有几个故障。
'to'
密钥缺少一个尾随引用。同样,代码通常有效,因此请确保您有足够的RAM,如果可能的话,请尝试使用其他服务器。