2012-07-29 122 views
3

致命错误字符串:函数名必须是线/home/../public_html/updater.php串3PHP的致命错误:函数名必须是

1: <?php 
2:  
3: $user_id = $_GET("uid"); /* <-- Line 3 */ 
4: $user_name = $_GET("uname"); 
5: $setting = $_GET("setting"); 
6:  
7: $MyString = $user_name + '[' + $user_id + ']{' + $setting + '} \n'; 
8:  
9: $myfile = fopen('database.txt', 'a'); 
10: fwrite($myfile, $MyString . '\n'); 
11: fclose($myfile); 
12:  
13: ?> 

有什么问题?

回答

3

为了得到array值在PHP中使用方括号[]不喜欢动,即$user_id = $_GET["uid"];

5

除了用方括号而非小括号,你应该改变线7

$MyString = $user_name . "[" . $user_id . "]{" . $setting . "} \n"; 

和10行至

fwrite($myfile, $MyString . "\n"); 

您应该使用句点(。)作为字符串连接而不是加号(+)。此外,在编写特殊字符(换行符)时,您需要使用双引号字符串而不是单引号。

+0

为什么你有问题了单引号不允许的原因对于像'\ n'这样的转义字符,'\ t'等不会被替换。 – 2012-07-29 04:13:36

+0

啊,说得通。谢谢! – 2012-07-29 16:19:54

2

语法错误。正确的语法是:

$user_id = $_GET["uid"]; 

在适用的地方应用更改。

1

混淆你为什么使用两条换行符。应该不够吗?

此外,您的代码与'\ n'错误,您不能这样做。

您需要;

“\ n” 这是正确解释隐式换行(或CHR(10))

CRLF(CHR(13)+ CHR(10)),其用于DOS格式的文本文件。

CR用于linux格式的文本文件。 (或chr(13))


另外,我建议使用“ta”作为fopen调用。从fopen()php页面中拉出;

如果您使用纯文本文件并且使用\ n在脚本中划定行尾,但希望您的文件可以用诸如记事本等应用程序读取,则应该使用't'模式。在所有其他情况下,您应该使用'b'。

参考文献:

http://php.net/manual/en/function.fopen.php

http://www.december.com/html/spec/ascii.html(13被认为是回车或/ R,10被认为是新行或/ N)

相关问题