????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.135.212.173 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /proc/self/root/home/b8009/php-5.6.22/main/ |
Upload File : |
/* +----------------------------------------------------------------------+ | PHP Version 5 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2016 The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | http://www.php.net/license/3_01.txt | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Author: Shane Caraveo <shane@caraveo.com> | | Ilia Alshanetsky <ilia@prohost.org> | +----------------------------------------------------------------------+ */ /* $Id$ */ #include "php.h" #include "php_scandir.h" #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_DIRENT_H #include <dirent.h> #endif #ifndef HAVE_SCANDIR #ifdef PHP_WIN32 #include "win32/param.h" #include "win32/readdir.h" #endif #include <stdlib.h> #ifndef NETWARE #include <search.h> #endif #endif /* HAVE_SCANDIR */ #ifndef HAVE_ALPHASORT #ifdef HAVE_STRING_H #include <string.h> #endif PHPAPI int php_alphasort(const struct dirent **a, const struct dirent **b) { return strcoll((*a)->d_name,(*b)->d_name); } #endif /* HAVE_ALPHASORT */ #ifndef HAVE_SCANDIR PHPAPI int php_scandir(const char *dirname, struct dirent **namelist[], int (*selector) (const struct dirent *entry), int (*compare) (const struct dirent **a, const struct dirent **b)) { DIR *dirp = NULL; struct dirent **vector = NULL; int vector_size = 0; int nfiles = 0; char entry[sizeof(struct dirent)+MAXPATHLEN]; struct dirent *dp = (struct dirent *)&entry; if (namelist == NULL) { return -1; } if (!(dirp = opendir(dirname))) { return -1; } while (!php_readdir_r(dirp, (struct dirent *)entry, &dp) && dp) { int dsize = 0; struct dirent *newdp = NULL; if (selector && (*selector)(dp) == 0) { continue; } if (nfiles == vector_size) { struct dirent **newv; if (vector_size == 0) { vector_size = 10; } else { vector_size *= 2; } newv = (struct dirent **) realloc (vector, vector_size * sizeof (struct dirent *)); if (!newv) { return -1; } vector = newv; } dsize = sizeof (struct dirent) + ((strlen(dp->d_name) + 1) * sizeof(char)); newdp = (struct dirent *) malloc(dsize); if (newdp == NULL) { goto fail; } vector[nfiles++] = (struct dirent *) memcpy(newdp, dp, dsize); } closedir(dirp); *namelist = vector; if (compare) { qsort (*namelist, nfiles, sizeof(struct dirent *), compare); } return nfiles; fail: while (nfiles-- > 0) { free(vector[nfiles]); } free(vector); return -1; } #endif /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: * vim600: sw=4 ts=4 fdm=marker * vim<600: sw=4 ts=4 */