在开发期间,当其他人正在尝试我的网站并遇到问题时,我希望能够找到我的代码存在问题的位置,get_defined_vars()对我来说可能是最有用的,可以找出发生了什么点。
我正在编写这个函数,但它正在返回:
解析错误:语法错误,意外'='
有人知道从php发送自己get_defined_vars()的方法吗?
if(isset($_GET['sendmeanemail'])){
$emailarr = get_defined_vars();
$to = 'myemail@gmail.com';
$subject = 'Debug Report for'. $currentApiUser['first-name']. ' '. $currentApiUser['last-name'];
$message = '<pre>\n';
$message. = print_r(addslashes($emailarr));
$message. = '</pre>';
$headers = 'From: webmaster@domain.com' . "\r\n" .
'Reply-To: webmaster@domain.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
编辑:这是通过更改为:(预标签实际上不是必需的,我正在弄清楚如何更好地格式化gmail)来修复的。
if(isset($_GET['sendmeanemail'])){
$emailarr = get_defined_vars();
$to = 'myemail@gmail.com';
$subject = 'Debug Report for'. $currentApiUser['first-name']. ' '. $currentApiUser['last-name'];
$message = '<pre>';
$message .= print_r($emailarr, true);
$message .= '</pre>';
$headers = 'From: webmaster@domain.com' . "\r\n" .
'Reply-To: webmaster@domain.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
答案 0 :(得分:1)
您需要在第二个参数设置为true的情况下调用print_r。此外,不应在数组上调用addslashes。它应该看起来像:
print_r($emailarr,true);
最后,你需要移动。 (期间)等号旁边。您的代码应如下所示:
$message = '<pre>\n';
$message .= print_r($emailarr,true);
$message .= '</pre>';