2011-08-22 11 views
0

我想用fwrite來用PHP編寫下面的字符串,但我不能寫 字符串是寫是$config['xxx']: 它顯示了錯誤 任何人可以幫助我嗎?使用php在文件中寫雙引號?

這裏是我的代碼

$stringData = "$config['xxx']"; 
fwrite($fh, $stringData); 

我有以下錯誤

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in D:\xampplite\htdocs\PHP test\filecreate.php on line 6 
+0

哪些錯誤(我可以想像,一個或其他,但你應該添加這些到你的問題)?你想寫的文本原樣或變量的內容? – hakre

+0

請參閱手冊中的轉義規則:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double - 您示例的實際問題是解析器期望PHP3風格的數組語法'print'$ config [xxx]「;'在雙引號內有效。 - 你的片段的實際目的是什麼? – mario

回答

3

試試這個

 

    $stringData = '"'.$config['c'].'"'; 
    fwrite($fh, $stringData); 

2
$stringData = "{$config['xxx']}"; //<<-- wrap with {...} 
fwrite($fh, $stringData); 

Ø [R剛:

$stringData = $config['xxx']; 
fwrite($fh, $stringData); 

,或者,如果你真的想寫$config['xxx']的文件,然後你要做的逃生:

$stringData = "\$config['xxx']"; 
fwrite($fh, $stringData); 
+0

''{$ config ['xxx']}「與$ config ['xxx']'有什麼不同? – Tomalak

+2

@Tomalak - 它不是:-),請參閱我的回答的第二部分 – Neal

+0

對。 :)我*懷疑* OP正在試圖寫一個文字'「$ config ['xxx']」'到文件中。雖然這可能是錯誤的。 – Tomalak

2

的問題是,你的字符串的內容被解釋。你需要這樣的斜線逃脫「$」:

$stringData = "\$config['c']"; 
fwrite($fh, $stringData); 
+0

+1這完全是我的懷疑。可選:使用單引號來防止變量擴展:'$ stringData ='$ config [\'xxx \']';' – Tomalak

+0

是的,這將工作。 –

+0

其工作表示感謝 – Ramamoorthy

2

請記住,PHP將嘗試解析$___格式在雙引號。例如。

$foo = 'bar'; 
echo "$foo"; // outputs bar because it parses the variable 

爲了避免這種情況,你可以在字符串中使用\$逃脫$。例如

$stringData = "\$config['xxx']"; 

如果你想文字文本$config['xxx']在文件中顯示出來。也就是說,。如果你想在文件中的$config['xxx'],你可以使用大括號或只是爲其分配一個變量:

// just the variable 
$stringData = $config['xxx']; 

// with braces so the interpreter can parse it correctly 
$stringData = "{$config['xxx']}"; 
0

嘗試使用單qoutes ...雙qoutes告訴PHP,以檢查是否有任何變量。因此,如果你有一個字符串,你應該總是使用單引號。即使它裏面有變量......因爲,比你需要將變量拉出字符串,就像它必須是:$ bla ='我有一些'。$變量'。這裏';。

所以在你的情況下,試試:$ stringData ='$ config [\'xxx \']';

0

如果需要輸出包裹着"的在$配置值[「XXX」],這個語法是有用的:

$stringData = "\"{$config['xxx']}\"";