本文整理汇总了PHP中filegroup函数的典型用法代码示例。如果您正苦于以下问题:PHP filegroup函数的具体用法?PHP filegroup怎么用?PHP filegroup使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了filegroup函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getInfoByName
public function getInfoByName($filePath)
{
$this->MAX_FILE_SIZE_FOR_HASHING = 1024 * 1024;
$this->absoluteName = $filePath;
$this->name = str_replace($this->web_root_dir, '.', $filePath);
$this->ctime = 0;
$this->mtime = 0;
$this->owner = '-';
$this->group = '-';
$this->access = 0;
$this->size = -1;
$this->md5 = '-';
if (file_exists($filePath)) {
$this->ctime = filectime($filePath);
$this->mtime = filemtime($filePath);
$owner = fileowner($filePath);
$ownerInfo = function_exists('posix_getpwuid') ? posix_getpwuid($owner) : array('name' => $owner);
$this->owner = $ownerInfo['name'];
$group = filegroup($filePath);
$groupInfo = function_exists('posix_getgrgid') ? posix_getgrgid($group) : array('name' => $group);
$this->group = $groupInfo['name'];
$this->access = substr(sprintf('%o', fileperms($filePath)), -4);
if (is_file($filePath)) {
$this->size = filesize($filePath);
if ($this->size <= $this->MAX_FILE_SIZE_FOR_HASHING) {
$this->md5 = hash_file('md5', $filePath);
}
}
}
return true;
}
示例2: listFile
public function listFile($pathname, $pattern = '*')
{
static $_listDirs = array();
$guid = md5($pathname . $pattern);
if (!isset($_listDirs[$guid])) {
$dir = array();
$list = glob($pathname . $pattern);
foreach ($list as $i => $file) {
$dir[$i]['filename'] = basename($file);
$dir[$i]['pathname'] = realpath($file);
$dir[$i]['owner'] = fileowner($file);
$dir[$i]['perms'] = fileperms($file);
$dir[$i]['inode'] = fileinode($file);
$dir[$i]['group'] = filegroup($file);
$dir[$i]['path'] = dirname($file);
$dir[$i]['atime'] = fileatime($file);
$dir[$i]['ctime'] = filectime($file);
$dir[$i]['size'] = filesize($file);
$dir[$i]['type'] = filetype($file);
$dir[$i]['ext'] = is_file($file) ? strtolower(substr(strrchr(basename($file), '.'), 1)) : '';
$dir[$i]['mtime'] = filemtime($file);
$dir[$i]['isDir'] = is_dir($file);
$dir[$i]['isFile'] = is_file($file);
$dir[$i]['isLink'] = is_link($file);
$dir[$i]['isReadable'] = is_readable($file);
$dir[$i]['isWritable'] = is_writable($file);
}
$cmp_func = create_function('$a,$b', '' . "\r\n" . ' $k = "isDir";' . "\r\n" . ' if($a[$k] == $b[$k]) return 0;' . "\r\n" . ' return $a[$k]>$b[$k]?-1:1;' . "\r\n" . ' ');
usort($dir, $cmp_func);
$this->_values = $dir;
$_listDirs[$guid] = $dir;
} else {
$this->_values = $_listDirs[$guid];
}
}
示例3: findDirs
/**
* Returns an array of found directories
*
* This function checks every found directory if they match either $uid or $gid, if they do
* the found directory is valid. It uses recursive function calls to find subdirectories. Due
* to the recursive behauviour this function may consume much memory.
*
* @param string path The path to start searching in
* @param integer uid The uid which must match the found directories
* @param integer gid The gid which must match the found direcotries
* @param array _fileList recursive transport array !for internal use only!
* @return array Array of found valid pathes
*
* @author Martin Burchert <martin.burchert@syscp.de>
* @author Manuel Bernhardt <manuel.bernhardt@syscp.de>
*/
function findDirs($path, $uid, $gid)
{
$list = array($path);
$_fileList = array();
while (sizeof($list) > 0) {
$path = array_pop($list);
$path = makeCorrectDir($path);
$dh = opendir($path);
if ($dh === false) {
standard_error('cannotreaddir', $path);
return null;
} else {
while (false !== ($file = @readdir($dh))) {
if ($file == '.' && (fileowner($path . '/' . $file) == $uid || filegroup($path . '/' . $file) == $gid)) {
$_fileList[] = makeCorrectDir($path);
}
if (is_dir($path . '/' . $file) && $file != '..' && $file != '.') {
array_push($list, $path . '/' . $file);
}
}
@closedir($dh);
}
}
return $_fileList;
}
示例4: findDirs
/**
* Returns an array of found directories
*
* This function checks every found directory if they match either $uid or $gid, if they do
* the found directory is valid. It uses recursive-iterators to find subdirectories.
*
* @param string $path the path to start searching in
* @param int $uid the uid which must match the found directories
* @param int $gid the gid which must match the found direcotries
*
* @return array Array of found valid paths
*/
function findDirs($path, $uid, $gid)
{
$_fileList = array();
$path = makeCorrectDir($path);
// valid directory?
if (is_dir($path)) {
try {
// create RecursiveIteratorIterator
$its = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
// we can limit the recursion-depth, but will it be helpful or
// will people start asking "why do I only see 2 subdirectories, i want to use /a/b/c"
// let's keep this in mind and see whether it will be useful
// @TODO
// $its->setMaxDepth(2);
// check every file
foreach ($its as $fullFileName => $it) {
if ($it->isDir() && (fileowner($fullFileName) == $uid || filegroup($fullFileName) == $gid)) {
$_fileList[] = makeCorrectDir(dirname($fullFileName));
}
}
} catch (UnexpectedValueException $e) {
// this is thrown if the directory is not found or not readble etc.
// just ignore and keep going
}
}
return array_unique($_fileList);
}
示例5: check_file
function check_file($f)
{
echo "\nFile {$f}\n";
echo '1.' . (file_exists($f) ? ' exists' : ' does NOT exist') . " \n";
if (!file_exists($f)) {
echo 'Remaining checks skipped' . " \n";
return;
}
echo '2. is' . (is_file($f) ? '' : ' NOT') . " a file\n";
echo '3. is' . (is_readable($f) ? '' : ' NOT') . " readable\n";
echo '4. is' . (is_writable($f) ? '' : ' NOT') . " writable\n";
echo '5. has permissions ' . substr(sprintf('%o', fileperms($f)), -4) . "\n";
echo '6. owner id ' . fileowner($f) . " (0 on Windows, blank if not permitted)\n";
if (function_exists('posix_geteuid')) {
$details = posix_getpwuid(posix_geteuid());
echo '6. owner name ' . $details['name'] . " \n";
echo '6. owner gid ' . $details['gid'] . " \n";
$details = posix_getgrgid($details['gid']);
echo '6. group name ' . $details['name'] . " \n";
}
echo '7. group id ' . filegroup($f) . " (0 on Windows, blank if not permitted)\n";
if (function_exists('posix_getegid')) {
$details = posix_getgrgid(posix_getegid());
echo '7. group name ' . $details['name'] . " \n";
}
}
示例6: dir2array
function dir2array($dir, $content)
{
if ($dir[strlen($dir) - 1] != '/') {
$dir .= '/';
}
if (!is_dir($dir)) {
return array();
}
$dir_handle = opendir($dir);
$array = array();
while ($object = readdir($dir_handle)) {
if (!in_array($object, array('.', '..'))) {
$filepath = $dir . $object;
$file_object = array('name' => $object, 'path' => $dir, 'size' => filesize($filepath), 'type' => filetype($filepath), 'node' => fileinode($filepath), 'group' => filegroup($filepath), 'time' => getTime($filepath), 'perms' => getPermissions($filepath));
if ($file_object['type'] == 'dir') {
if ($content == true) {
$file_object['content'] = dir2array($filepath, $content);
}
} else {
if ($content == true) {
$file_object['content'] = file2base64($filepath);
}
$file_object['mime'] = getMime($filepath);
}
$array[] = $file_object;
}
}
return $array;
}
示例7: setFileInformations
/**
* collect all fileinformations of given file and
* save them to the global fileinformation array
*
* @param string $file
* @return boolean is valid file?
*/
protected function setFileInformations($file)
{
$this->fileInfo = array();
// reset previously information to have a cleaned object
$this->file = $file instanceof \TYPO3\CMS\Core\Resource\File ? $file : NULL;
if (is_string($file) && !empty($file)) {
$this->fileInfo = TYPO3\CMS\Core\Utility\GeneralUtility::split_fileref($file);
$this->fileInfo['mtime'] = filemtime($file);
$this->fileInfo['atime'] = fileatime($file);
$this->fileInfo['owner'] = fileowner($file);
$this->fileInfo['group'] = filegroup($file);
$this->fileInfo['size'] = filesize($file);
$this->fileInfo['type'] = filetype($file);
$this->fileInfo['perms'] = fileperms($file);
$this->fileInfo['is_dir'] = is_dir($file);
$this->fileInfo['is_file'] = is_file($file);
$this->fileInfo['is_link'] = is_link($file);
$this->fileInfo['is_readable'] = is_readable($file);
$this->fileInfo['is_uploaded'] = is_uploaded_file($file);
$this->fileInfo['is_writeable'] = is_writeable($file);
}
if ($file instanceof \TYPO3\CMS\Core\Resource\File) {
$pathInfo = \TYPO3\CMS\Core\Utility\PathUtility::pathinfo($file->getName());
$this->fileInfo = array('file' => $file->getName(), 'filebody' => $file->getNameWithoutExtension(), 'fileext' => $file->getExtension(), 'realFileext' => $pathInfo['extension'], 'atime' => $file->getCreationTime(), 'mtime' => $file->getModificationTime(), 'owner' => '', 'group' => '', 'size' => $file->getSize(), 'type' => 'file', 'perms' => '', 'is_dir' => FALSE, 'is_file' => $file->getStorage()->getDriverType() === 'Local' ? is_file($file->getForLocalProcessing(FALSE)) : TRUE, 'is_link' => $file->getStorage()->getDriverType() === 'Local' ? is_link($file->getForLocalProcessing(FALSE)) : FALSE, 'is_readable' => TRUE, 'is_uploaded' => FALSE, 'is_writeable' => FALSE);
}
return $this->fileInfo !== array();
}
示例8: findDirs
/**
* Returns an array of found directories
*
* This function checks every found directory if they match either $uid or $gid, if they do
* the found directory is valid. It uses recursive function calls to find subdirectories. Due
* to the recursive behauviour this function may consume much memory.
*
* @param string path The path to start searching in
* @param integer uid The uid which must match the found directories
* @param integer gid The gid which must match the found direcotries
* @param array _fileList recursive transport array !for internal use only!
* @return array Array of found valid pathes
*
* @author Martin Burchert <martin.burchert@syscp.de>
* @author Manuel Bernhardt <manuel.bernhardt@syscp.de>
*/
function findDirs($path, $uid, $gid)
{
$list = array($path);
$_fileList = array();
while (sizeof($list) > 0) {
$path = array_pop($list);
$path = makeCorrectDir($path);
if (!is_readable($path) || !is_executable($path)) {
//return $_fileList;
// only 'skip' this directory, #611
continue;
}
$dh = opendir($path);
if ($dh === false) {
/*
* this should never be called because we checked
* 'is_readable' before...but we never know what might happen
*/
standard_error('cannotreaddir', $path);
return null;
} else {
while (false !== ($file = @readdir($dh))) {
if ($file == '.' && (fileowner($path . '/' . $file) == $uid || filegroup($path . '/' . $file) == $gid)) {
$_fileList[] = makeCorrectDir($path);
}
if (is_dir($path . '/' . $file) && $file != '..' && $file != '.') {
array_push($list, $path . '/' . $file);
}
}
@closedir($dh);
}
}
return $_fileList;
}
示例9: get_smt2wp_diagnose_info
function get_smt2wp_diagnose_info()
{
$wp_base_dir = get_wp_base_dir();
$folders = array('server root' => $_SERVER['DOCUMENT_ROOT'], 'wp root' => $wp_base_dir, 'wp content' => $wp_base_dir . '/wp-content', 'wp uploads' => $wp_base_dir . '/wp-content/uploads', 'smt root' => $wp_base_dir . '/wp-content/plugins/' . basename(dirname(__FILE__)));
$folders_check_result = array();
foreach ($folders as $key => $folder) {
$folder = smt2wp_sanitize_dir_path($folder);
// var_dump($folder);
$folders_check_result[$key]['path'] = $folder;
$folders_check_result[$key]['permissions'] = base_convert(fileperms($folder), 10, 8);
// $folders_check_result[$key]['owner'] = posix_getpwuid(fileowner($folder));
$folders_check_result[$key]['owner_id'] = fileowner($folder);
// $folders_check_result[$key]['group'] = posix_getgrgid(filegroup($folder));
$folders_check_result[$key]['group_id'] = filegroup($folder);
// $folders_check_result[$key]['other_stats'] = stat($folder);
$folders_check_result[$key]['is_writable'] = is_writable($folder);
$test_folder = smt2wp_sanitize_dir_path($folder . '/test-348214');
$test_file = $test_folder . '/test-file-6542.txt';
$mkdir = mkdir($test_folder);
$put_contents = file_put_contents($test_file, 'this is just a test. you can delete this file');
$delete_file = unlink($test_file);
$rm_dir = rmdir($test_folder);
$folders_check_result[$key]['can_make_dir'] = $mkdir;
$folders_check_result[$key]['can_write_file'] = $put_contents === false ? false : true;
$folders_check_result[$key]['can_delete_file'] = $delete_file;
$folders_check_result[$key]['can_rm_dir'] = $rm_dir;
}
$all_ini_settings = ini_get_all();
$separator = '<<+>>';
$res = $separator . json_encode($folders_check_result);
$res .= $separator . json_encode($all_ini_settings);
// var_dump($all_ini_settings);
return $res;
}
示例10: ls
function ls()
{
$list = array();
if ($handle = opendir($this->root . $this->cwd)) {
while (false !== ($file = readdir($handle))) {
if ($file == "." || $file == "..") {
continue;
}
$filename = $this->root . $this->cwd . $file;
$filetype = filetype($filename);
if ($filetype != "dir" && $filetype != "file") {
continue;
}
$filesize = $filetype == "file" ? filesize($filename) : 0;
/* owner, group, last modification and access info added by Phanatic */
$owner = posix_getpwuid(fileowner($filename));
$fileowner = $owner['name'];
$group = posix_getgrgid(filegroup($filename));
$filegroup = $group['name'];
$mtime = filemtime($filename);
$filemod = date("M d H:i", $mtime);
$fileperms = $this->perms(fileperms($filename));
clearstatcache();
$info = array("name" => $file, "size" => $filesize, "owner" => $fileowner, "group" => $filegroup, "time" => $filemod, "perms" => $fileperms);
$list[] = $info;
}
closedir($handle);
return $list;
} else {
return false;
}
}
示例11: getInfo
public function getInfo($path)
{
if (JFile::exists($path) || JFolder::exists($path)) {
return array('path' => $path, 'realpath' => realpath($path), 'owner/group' => filegroup($path) . '/' . fileowner($path), 'permissions' => $this->getPerms($path), 'is_readable' => is_readable($path), 'is_writable' => is_writable($path));
}
return 'No exists';
}
示例12: paloConfig
function paloConfig($directorio, $archivo, $separador = "", $separador_regexp = "", $usuario_proceso = NULL)
{
$this->directorio = $directorio;
$this->archivo = $archivo;
$this->separador = $separador;
$this->separador_regexp = $separador_regexp;
if (!is_null($usuario_proceso)) {
$this->usuario_proceso = $usuario_proceso;
} else {
$arr_user = posix_getpwuid(posix_getuid());
if (is_array($arr_user) && array_key_exists("name", $arr_user)) {
$this->usuario_proceso = $arr_user['name'];
}
}
//Debo setear el usuario de sistema y el grupo dependiendo del usuario y grupo propietario del archivo
$ruta_archivo = $directorio . "/" . $archivo;
if (file_exists($ruta_archivo)) {
$arr_usuario = posix_getpwuid(fileowner($ruta_archivo));
if (is_array($arr_usuario)) {
$this->usuario_sistema = $arr_usuario['name'];
}
$arr_grupo = posix_getgrgid(filegroup($ruta_archivo));
if (is_array($arr_grupo)) {
$this->grupo_sistema = $arr_grupo['name'];
}
}
/*
echo "ruta_archivo=".$ruta_archivo."<br>usuario_sistema=".$this->usuario_sistema."<br>grupo_sistema=".
$this->grupo_sistema."<br>usuario_proceso= ".$this->usuario_proceso."<br>";
echo "<script>alert('alto =)');</script>";
*/
}
示例13: _match_owners_if_possible
function _match_owners_if_possible($target_filename, $match_from_filename)
{
try {
if (false === ($intended_uid = fileowner($match_from_filename))) {
throw new Exception("fileowner failed on source");
}
if (false === ($intended_gid = filegroup($match_from_filename))) {
throw new Exception("filegroup failed on source");
}
if (false === ($uid = fileowner($target_filename))) {
throw new Exception("fileowner failed on target");
}
if (false === ($gid = filegroup($target_filename))) {
throw new Exception("filegroup failed on target");
}
if ($intended_uid != $uid && !chown($target_filename, $intended_uid)) {
throw new Exception("chown failed on target");
}
if ($intended_gid != $gid && !chgrp($target_filename, $intended_gid)) {
throw new Exception("chgrp failed on target");
}
} catch (Exception $e) {
error_log("Cannot assign ownership of [{$target_filename}] to owner of [{$match_from_filename}]: " . $e->getMessage());
}
}
示例14: listFile
public function listFile($pathname, $pattern = "*")
{
static $_listDirs = array();
$guid = md5($pathname . $pattern);
if (!isset($_listDirs[$guid])) {
$dir = array();
$list = glob($pathname . $pattern);
foreach ($list as $i => $file) {
$dir[$i]["filename"] = preg_replace("/^.+[\\\\\\/]/", "", $file);
$dir[$i]["pathname"] = realpath($file);
$dir[$i]["owner"] = fileowner($file);
$dir[$i]["perms"] = fileperms($file);
$dir[$i]["inode"] = fileinode($file);
$dir[$i]["group"] = filegroup($file);
$dir[$i]["path"] = dirname($file);
$dir[$i]["atime"] = fileatime($file);
$dir[$i]["ctime"] = filectime($file);
$dir[$i]["size"] = filesize($file);
$dir[$i]["type"] = filetype($file);
$dir[$i]["ext"] = is_file($file) ? strtolower(substr(strrchr(basename($file), "."), 1)) : "";
$dir[$i]["mtime"] = filemtime($file);
$dir[$i]["isDir"] = is_dir($file);
$dir[$i]["isFile"] = is_file($file);
$dir[$i]["isLink"] = is_link($file);
$dir[$i]["isReadable"] = is_readable($file);
$dir[$i]["isWritable"] = is_writable($file);
}
$cmp_func = create_function("\$a,\$b", "\r\n\t\t\t\$k = \"isDir\";\r\n\t\t\tif(\$a[\$k] == \$b[\$k]) return 0;\r\n\t\t\treturn \$a[\$k]>\$b[\$k]?-1:1;\r\n\t\t\t");
usort($dir, $cmp_func);
$this->_values = $dir;
$_listDirs[$guid] = $dir;
} else {
$this->_values = $_listDirs[$guid];
}
}
示例15: matchOwnersIfPossible
public function matchOwnersIfPossible($target_filename, $match_from_filename)
{
try {
if (false === ($intended_uid = fileowner($match_from_filename))) {
throw new \Exception("fileowner failed on source");
}
if (false === ($intended_gid = filegroup($match_from_filename))) {
throw new \Exception("filegroup failed on source");
}
if (false === ($uid = fileowner($target_filename))) {
throw new \Exception("fileowner failed on target");
}
if (false === ($gid = filegroup($target_filename))) {
throw new \Exception("filegroup failed on target");
}
if ($intended_uid != $uid && !$this->chown($target_filename, $intended_uid)) {
throw new \Exception("chown failed on target");
}
if ($intended_gid != $gid && !$this->chgrp($target_filename, $intended_gid)) {
throw new \Exception("chgrp failed on target");
}
} catch (\Exception $e) {
throw new IOException("Cannot assign ownership of [{$target_filename}] to owner of [{$match_from_filename}]: " . $e->getMessage());
}
}