WordPress回调页面fwrite未写入正确输出字符串问题排查
WordPress回调页面fwrite写入文件异常问题
正在编写一个WordPress回调页面,整体功能正常,但fwrite()函数未能将正确的字符串写入文件。需求是将$_REQUEST数据记录到文件中。
问题代码
if( isset($_REQUEST) ){ $t = date('Y-m-d_h-i-s', $timestamp); $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; $filename= $DOCUMENT_ROOT . '/wp-content/themes/my-theme/callback/inbound_' . $t . ".html"; $array = array("test" => "1"); ob_start(); echo "<pre>"; print_r($_REQUEST); echo "</pre>"; $output = ob_get_contents(); ob_end_clean(); $handle = fopen($filename,"w"); fwrite($handle,strlen($output)); fclose($handle); echo $output; }
现象
屏幕输出正常,能看到正确的$_REQUEST数据:
Array ( [test] => 1 [woocommerce-login-nonce] => [_wpnonce] => [woocommerce-reset-password-nonce] => [woocommerce-edit-address-nonce] => [save-account-details-nonce] => )
但生成的文件内容却是数字(比如211,数值随字符串长度变化):
211
问题原因(更新)
犯了低级错误:
错误写法:
fwrite($handle,strlen($output));
正确写法:
fwrite($handle,$output,strlen($output));
内容的提问来源于stack exchange,提问作者TARKUS
相关产品推荐
相关产品推荐

