2011-10-27 36 views
-1

我正在使用file_get_contents()來檢索我存儲在.txt文件中的縣的列表。每個縣都有自己的路線。php - file_get_contents()或類似的函數

有沒有一種方法可以在每個條目周圍添加引號,然後在函數內部添加一個逗號?我的一個限制是它必須在函數內部填充,並且不能是兩個單獨的命令。

可以這樣做嗎?

或者我需要看看另一個功能呢?

+1

爲什麼你能不能用兩個函數? – 472084

+1

'我有一個限制是它必須在函數內部填充 - 爲什麼?你想在這裏得到的最終結果是什麼 - 你是在寫CSV還是什麼? – DaveRandom

+0

你是什麼意思兩個單獨的命令? – xdazz

回答

3
$countries = file('countries.txt'); // get country list into an array 

$fixed_countries = array_map(function($v) { return '"' . trim($v) . '",'; }, $countries); 
+0

我繼續使用批處理腳本來重新填充我的列表,並用適當的引號和逗號重新導入文件到服務器,然後使用file()來填充數組,像一個魅力工作。謝謝 – Mechaflash

-1

當然。

$countries = explode("\n",'"'.str_replace("\n","\",\n\"",file("countries.txt"))); 

這應該是這樣的轉換文件:

country1 
country2 
... 

到像這樣的數組:

array('"country1",','"country2",',...). 

這就是你想要的,對不對?

+0

這樣做的結果是'array(0 =>'「Array')'因爲你正在將一個數組附加到一個字符串中。 – DaveRandom

1

你可以做到這一點很容易地,如果你使用的file代替file_get_contents它甚至更好:

$callback = create_function('$c', 'return "\"".trim($c)."\"";'); 
$countries = array_map($callback, file('countries.txt')); 
return implode(', ', $countries); 

我寫$callback有語法是有效的PHP < 5.3;它也可以把它寫成匿名函數:

$callback = function($c) { return '"'.trim($c).'"'; }; 

See it in action

+0

Downvoter:請幫我改進這個答案,發表評論 – Jon

0

如果你讀的東西行由行,filefile_get_contents是比較合適的:

echo implode(',', 
      array_map(function($county) {return '"' . trim($county) . '"';}), 
         file('counties.txt')); 
+0

我很樂意改進這個答案。它錯了嗎? – phihag

相關問題