2012-07-29 123 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)

相關問題