2016-11-20 72 views
-1
$file = 'userdata.txt'; 
file_put_contents($file, print_r($_SERVER['HTTP_USER_AGENT']), 
FILE_APPEND); 

在userdata.txt我:1(不知道为什么)

最后,我要保存到.txt$_SERVER['HTTP_USER_AGENT']$_SERVER['REMOTE_ADDR']

+0

欢迎来到SO。请阅读[我可以问哪些主题](http://stackoverflow.com/help/on-topic)和[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask )和[完美的问题](https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)和[如何创建一个最小,完整和可验证的例子](http:///stackoverflow.com/help/mcve) – mazedlx

回答

2
$file = 'userdata.txt'; 
file_put_contents($file, print_r($_SERVER['HTTP_USER_AGENT']), FILE_APPEND); 

print_r function(在上述情况下)将输出打印到stdout并返回TRUE给来电者。所以,你有什么是相同的:

$file = 'userdata.txt'; 
print_r($_SERVER['HTTP_USER_AGENT']); 
file_put_contents($file, TRUE, FILE_APPEND); 

TRUE就变成1当它是converted to string

最简单的方式做你想要的是简单地跳过print_r电话:

$file = 'userdata.txt'; 
file_put_contents($file, $_SERVER['HTTP_USER_AGENT'], FILE_APPEND); 

或者,如果你想通过print_r产生的特定的格式,你可以添加第二个参数:

$file = 'userdata.txt'; 
file_put_contents($file, print_r($_SERVER['HTTP_USER_AGENT'], TRUE), FILE_APPEND); 

这将导致print_r返回输出,而不是直接打印。