CakeFest 2024: The Official CakePHP Conference

svn_ls

(PECL svn >= 0.1.0)

svn_lsВозвращает список содержимого директории репозитория URL, опционально для конкретной ревизии

Описание

svn_ls(
    string $repos_url,
    int $revision_no = SVN_REVISION_HEAD,
    bool $recurse = false,
    bool $peg = false
): array

Данная функция строит запрос по URL адресу репозитория и получает список файлов и директорий, опционально для конкретной ревизии. Это эквивалентно команде SVN svn list $repos_url[@$revision_no]

Замечание:

Данная функция не работает с локальными рабочими копиями репозитория. Параметр repos_url должен быть URL-адресом репозитория.

Список параметров

url

URL-адрес репозитория, например http://www.example.com/svnroot. Для доступа к локальному репозиторию Subversion через файловую систему используйте файловую URI-схему, например file:///home/user/svn-repos.

revision

Целочисленный номер ревизии для получения списка содержимого. Если параметр опущен, используется последняя ревизия (HEAD).

recurse

Включает рекурсивный запрос.

Возвращаемые значения

В случае успешного выполнения данная функция возвращает массив имён файлов/директорий в формате:

[0] => Array
    (
        [created_rev] => Номер последней ревизии файла/папки
        [last_author] => Имя автора последней правки
        [size] => Размер файла в байтах
        [time] => Дата последнего изменения в формате 'M d H:i'
                  или 'M d Y', в зависимости от того, сколько прошло времени с последней правки.
        [time_t] => отметка времени unix о последнем изменении (целое число)
        [name] => имя файла/директории
        [type] => тип, может принимать значения 'file' (файл) или 'dir' (директория)
    )
[1] => ...

Примеры

Пример #1 Пример использования svn_ls()

<?php
print_r
( svn_ls('http://www.example.com/svnroot/') );
?>

Вывод приведённого примера будет похож на:

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, её имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

add a note

User Contributed Notes 1 note

up
0
php thereatthe bluedream dotty tv
11 years ago
Be aware that the function will condition the path for you; do not do it yourself or you will have resulting errors.

Ex: that paths with spaces in them do NOT need the escaping slash
<?php
svn_ls
('file:///var/svn/myrepo/dirA/another dir'); //will work->happiness
svn_ls('file:///var/svn/myrepo/dirA/another\ dir'); //will fail
?>
Warning: svn_ls(): svn error(s) occured 160013 (Filesystem has no item) URL 'file:///var/svn/myrepo/dirA/another\ dir' non-existent in that revision in file.php on line 42
To Top