php - file_get_contents () или аналогичная функция - PullRequest
0 голосов
/ 27 октября 2011

Я использую file_get_contents (), чтобы получить список округов, которые я сохранил в файле .txt. Каждый округ находится на своей линии.

Есть ли способ добавить кавычки вокруг каждой записи, а затем запятую после нее в функции? У меня есть одно ограничение: оно должно заполняться внутри функции и не может быть двумя отдельными командами.

Можно ли это сделать?

Или, может быть, мне нужно посмотреть другую функцию для этого?

Ответы [ 4 ]

3 голосов
/ 27 октября 2011
$countries = file('countries.txt'); // get country list into an array

$fixed_countries = array_map(function($v) { return '"' . trim($v) . '",'; }, $countries);
1 голос
/ 27 октября 2011

Вы можете сделать это довольно легко, и даже лучше, если вы используете 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;его также можно написать как анонимную функцию: </p>

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

Посмотреть в действии .

0 голосов
/ 27 октября 2011

Если вы читаете что-то построчно, file более подходит, чем file_get_contents:

echo implode(',',
             array_map(function($county) {return '"' . trim($county) . '"';}),
                       file('counties.txt'));
0 голосов
/ 27 октября 2011

Конечно.

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

Это должно конвертировать файл так:

country1
country2
...

в массив, подобный этому:

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

Это то, что вы хотите, верно?

...