Чтение из файла + trim

lantastic

Новичок
Чтение из файла + trim

У меня в файле хранятся допустим фамилии, по одной в каждой строке. Я считываю их вот так:

PHP:
$names = file('names.txt');
В этом случае элементы массива $names завершаются символом перевода строки, что неудобно. Надо применить к каждому элементу trim();

Я хочу написать альтернативную функцию myreadfile() чтобы она счиывала файл в массив и сразу применяла trim() к каждому элементу массива. Возвращать она будет массив, как и file(). Понятно, что это просто сделать. Но вот как бы вы ее написали эту функцию? Я просто думаю, что сделаю не оптимально, я ведь новичок. Я вот думаю array_walk использовать.

Заранее спасибо!
 

BRat

o_0
PHP:
$names=file_get_contents('names.txt');
$arr=explode('\n',$names);
Я бы наверно так сделал

если хочешь свой способ, без проблем..главное чтобы тебе было удобней
 

neko

tеam neko
а ты попытайся
надо иногда напрягать содержимое черепной коробки
 

BRat

o_0
попытаться написать фигню? хороший совет, учту на будущее.
 

lantastic

Новичок
с array_map более-менее понятно... но вот trim() можно использовать будет с ней? или надо будет свою функцию trim2() ввести?

а вот насчет

PHP:
$names=file_get_contents('names.txt'); 
$arr=explode('\n',$names);
тут что не так?
 

neko

tеam neko
> с array_map более-менее понятно... но вот trim() можно
> использовать будет с ней?

рекоммендуется уже начать пробовать

> тут что не так?
все
тут одна опечатка и одна фактическая ошибка в двух строках

слабоумному выпендрежнику которые эту херню родил предлагается самостоятельно их найти
в воспитательных целях
 

neko

tеam neko
а что еще с тобой делать, если по русски не понимаешь?
 

lantastic

Новичок
я уже разобрался, работает и так и так, спасибо!!!

только вот во втором случае в explode() надо использовать "\r\n" так ведь? :)
 

neko

tеam neko
нет

т.е. это не единственно возможная комбинация символов для разделения строк
поэтому надо использовать функции которые их нормально проверяют
 

BRat

o_0
опечатка
$names=file_get_contents('names.txt');
$arr=explode("\n",$names);
двойные кавычки..так работает, проверил)
 

BRat

o_0
не спасибо, мне одного раза достаточно
не единственная не спорю
 

neko

tеam neko
тебе никто спорить не предлагал
тебе предлагается, пока еще самому
в этом беспросветном ламерстве которое ты написал
найти ошибку
 

BRat

o_0
я повторяю ошибки нет, работает, разбивает, разбивает правильно.
 

lantastic

Новичок
не знаю какое вы уж там ламерство нашли, а я уже сочинил функцию на основе первого варианта, предложенного neko , потому что trim() еще и пробелы по концам обрежет, а вот explode() нет

PHP:
  function my_readfile($fname)
  {
     $f = file($fname);
     return array_map('trim',$f);
  }
правильно я написал? все работает! ура

-~{}~ 19.03.05 10:00:

я даже улучшил функцию:

function my_readfile($fname)
{
return array_map('trim',file($fname));
}

:D
 
Сверху