2011-10-27 37 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

相关问题