2012-04-19 74 views
0

嘿東西,我只是偶然被發現,那將我節省了大量的工作,但必須有沒有副作用,是那可以說你有這個文件通過索引向數組添加元素,增量?

0 
0 
0 

而你需要號碼添加到它,有點像一個理貨,但你也想修改字符串中的特定字符,而不是添加它們....但你想添加到最後而不是修改任何不存在的索引...

所以如果你採用上面的這些行中的一行,並對其使用str_split,然後嘗試通過編號索引添加內容,似乎不會感到困惑!

就像說我想修改該文件的第2行的第20個索引。由於沒有第20個索引,它只會自動將元素添加到數組的末尾。

我可以讓這張幻燈片或者這可能會冒險讓它做到這一點?就像一個副作用,我不知道或東西....

男人,如果有任何我的問題要關閉,因爲他們不明白我問的東西....:P

對不起,但我想不出要怎麼說。

確定這裏的一些代碼

$change_str = str_split($array_change[$list_num]); 
UltraDB($change_str, "Change String BEFORE"); 
$change_str[20] = '5'; 
$array_change[$list_num] = implode('', $change_str); 
foreach($array_change as $v){ 
file_put_contents("file.txt", $v . "\n", FILE_APPEND); 
} 
UltraDB($array_change, "File is now."); 

UltraDB只是我的調試功能相結合的var_dump呼應和換行符

編輯:好吧只是想如何更好的詞,我的問題:當一個索引不存在在由str_split創建的數組中,但是您想要添加該數組的某個索引,如果該索引尚不存在,那麼添加添加到結尾索引的內容是否正常?

+0

*對不起,但我想不出怎麼說它。*顯示一些代碼!對不起,但我不知道你在做什麼。 – 2012-04-19 20:13:06

+0

好的,我添加了代碼 – user1159454 2012-04-19 20:18:44

+0

所以這就是我想你想說的,糾正我,如果我錯了。你正試圖讀取文件的行,直到X被擊中(在你的例子中X是20),你試圖讀出該行直到Y(你從未列出Y,但可以說它是10)Y可以是字符長度或通過分隔符(如製表符,或逗號或其他)來讀取X和Y的那一點,以便更改該值(Z)。如果該值不存在(Y的計數不存在),那麼您希望爲Z的值附加一個NEW LINE ....對嗎? – ehime 2012-04-19 22:13:41

回答

0

我不正確地理解它,但這裏是你如何可以僅通過行號安全地編輯了20日線,沒有任何需要的值:

$file = file('file.txt'); 
$file[19] = $file[19]++; // the index starts with so for line 20 we take index 19 

// and saving it 
file_put_contents('file.txt', implode(PHP_EOL, $file)); 
0

以上是混亂,但我認爲這是什麼你問。未經測試,所以是啊...無論如何...

$d=' '; //delimiter 

$x=20; //how many lines in 
$y=10; //how many values out 
$z=4; //value to insert at X/Y 

$file = file('file.txt'); 
$tmp = explode($d, $file[$x]); 

if($file[$y]) { 
    $file[$y]=$z; 
} else { 
    $file[]=$z; 
} 

foreach($file as &$line){ 
    $line = implode($d, $line); 
} 

file_put_contents('file.txt', implode(PHP_EOL, $file));