php致命错误:函数名称必须是中的字符串


php Fatal error: Function name must be a string in

致命错误:函数名称必须是/home/..中的字符串/第3行的public_html/updater.php

 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: ?>

出了什么问题

用方括号将$_GET()代码更改为$_GET[]

  • $_GET是一个超全局(预定义/内置变量),而不是一个函数
  • http://php.net/manual/en/language.variables.superglobals.php

除了使用方括号而不是括号外,还应该将第7行更改为

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

线路10至

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

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

要在php中获取数组值,请使用方括号[],而不是vb,即$user_id = $_GET["uid"];

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

$user_id = $_GET["uid"];

在适用的情况下应用更改。

混淆了为什么要使用两个换行符。一个还不够吗?

此外,您的代码中有"''n"错误,您不能这样做。

你需要;

"''n"正确解释的隐含换行符(或chr(10))

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

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


此外,我建议在fopen调用中使用"ta"。从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)

更改所有GET方法:

$user_id = $_GET("uid"); /* <-- Line 3 */

$user_id = $_GET["uid"];

完成