PHP mkdir объекта SPLFileObject

Я пытаюсь создать n каталогов на основе файла TXT, используя этот код:

<?php

$file = new SPLFileObject('/Applications/MAMP/htdocs/artists_report/2014/artists.txt');
foreach ($file as $line) {
    mkdir($line);
}

?>

Я ожидаю, что mkdir назначит папку имен на основе каждой строки, которую я получил в artist.txt ‹- $line, но каталоги создаются без имен, и я не могу понять, почему mkdir не принимает $line как строку.

Любые идеи?


person Meeku    schedule 23.07.2014    source источник
comment
@RocketHazmat может не работать, так как в Windows нет параметра режима.   -  person Shawn    schedule 23.07.2014
comment
@Шон: /Applications/MAMP. Похоже на Мак. Кроме того, параметр recursive отлично работает в Windows. Параметр mode просто игнорируется.   -  person Rocket Hazmat    schedule 23.07.2014
comment
Я думаю, что здесь происходит несколько вещей. Во-первых, новый SPLFileObject будет давать объект, а не строку. Второй может быть права доступа к файлам в этом каталоге.   -  person Shawn    schedule 23.07.2014
comment
@RocketHazmat не осознавал, что его игнорируют в Windows. приятно знать спасибо.   -  person Shawn    schedule 23.07.2014
comment
@Shawn: SplFileObject - это итератор, поэтому его можно зациклить, как это делается здесь. Я неправильно прочитал вопрос. Он хочет создать папки на основе строк в файле.   -  person Rocket Hazmat    schedule 23.07.2014


Ответы (1)


Используйте file вместо SPLFileObject

$file = file('/Applications/MAMP/htdocs/artists_report/2014/artists.txt');
foreach ($file as $line) {
    mkdir($line);
}

Это предполагает, что каждая строка в artists.txt является полным именем пути

person FuzzyTree    schedule 23.07.2014