2013-03-28 38 views
0

我正在使用$file_contents = file_get_contents($file_name),然後使用$file_contents = array_splice($file_contents, 30, 7, 'changedText')更新文件代碼中的內容。然而,這種不斷產生:PHP - get_file_contents不能用作數組?

Warning: array_splice(): The first argument should be an array 

從我瞭解的file_get_contents通過返回的字符串()應該是能夠作用於像任何其他數組。任何原因,我有這個麻煩?非常感謝!

回答

6

the manual

file_get_contents - 將整個文件讀入一個字符串

所以你不要有一個數組。你有一個字符串。

+0

file()函數將文件讀入一行數組。我認爲問題是關於通過方括號來訪問字符串,這看起來像一個數組,但事實上它不是 - 它只是一個PHP有用的語法。 – Karol 2013-03-28 01:44:50

+0

好點。刪除了文件()部分。 – 2013-03-28 01:48:26

+0

是的 - 這就是爲什麼我添加了答案。但你更快:) – Karol 2013-03-28 01:49:55

1

閱讀documentation

字符串不是一個數組,即使它支持用方括號:你想要的行爲

$str[0] 

使用str_split功能。它會將您的字符串轉換爲真實數組,然後您可以將它用作array_splice函數中的一個參數。例如:

echo('<pre>'); 
var_dump(array_slice(str_split("Stack Overflow"), 6)); 
echo('</pre>'); 
die(); 

我認爲它有幫助。

+0

謝謝,我的困惑是假設一個字符串是PHP中的一種數組形式。 – golmschenk 2013-03-28 03:19:33

+0

這就是爲什麼'str_split'可以幫助您將字符串轉換爲數組的原因;) – Karol 2013-03-28 03:34:15