php - file_get_contents () або подібна функція

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

Чи є спосіб додавання цитат навколо кожного вводу, а потім комою після його виконання в межах функції? Одне обмеження, яке я маю, полягає в тому, що він повинен буде заповнюватися в межах функції, і не може бути двома окремими командами.

Чи можна це зробити?

А може, мені потрібно подивитися на цю функцію?

1
@Jleagle @DaveRandom; Я редагую додаток нашого, і нам дозволяється редагувати лише певний файл, щоб додати додаткове поле до форми. Цей файл захоплений іншим файлом, який переводить рядки і робить щось із цим, щоб заповнити поля (у яких ми не маємо дозволу на доступ до цього файлу). Через це додавання будь-яких інших додаткових команд порушує операцію.
додано Автор Mechaflash, джерело
Будь-яка причина, чому це отримало зниження?
додано Автор Mechaflash, джерело
Одне обмеження, яке я маю, полягає в тому, що він повинен буде заповнюватися в межах функції - чому? Який кінцевий результат ви хочете тут - чи ви пишете в CSV чи щось?
додано Автор DaveRandom, джерело
Що ви маєте на увазі дві окремі команди?
додано Автор xdazz, джерело
Чому ви не можете використовувати дві функції?
додано Автор 472084, джерело
Може бути, через дивні вимоги обмежити його однією функцією. (Я не зменшився).
додано Автор middus, джерело

4 Відповіді

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

$fixed_countries = array_map(function($v) { return '"' . trim($v) . '",'; }, $countries);
3
додано
Я пішов вперед і використовував пакетний скрипт для повторного використання мого списку з відповідними цитатами та комами, повторно інформував файл на сервер, а потім використовував файл() для заповнення масиву. Працював як чарівність. Дякую
додано Автор Mechaflash, джерело

Впевнений

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

Це має перетворити файл таким чином:

country1
country2
...

в такий масив:

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

Це те, що ти хочеш, вірно?

1
додано
Результатом цього буде array (0 => 'Array') , оскільки ви додаєте масив до рядка.
додано Автор DaveRandom, джерело

Ви можете зробити це досить легко, і це навіть краще, якщо ви використовуєте файл замість file_get_contents :

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

I have written $callback with a syntax that is valid for PHP < 5.3; it's also possible to write it as an anonymous function:

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

See it in action.

1
додано
Downvoter: будь ласка, допоможіть мені покращити цю відповідь, залишивши коментар.
додано Автор Jon, джерело

Якщо ви читаєте щось окремо, file є більш правильним, ніж file_get_contents :

echo implode(',',
             array_map(function($county) {return '"' . trim($county) . '"';}),
                       file('counties.txt'));
0
додано
Я був би радий поліпшити цю відповідь. Що з цим не так?
додано Автор phihag, джерело
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php