本文整理汇总了PHP中fileowner函数的典型用法代码示例。如果您正苦于以下问题:PHP fileowner函数的具体用法?PHP fileowner怎么用?PHP fileowner使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了fileowner函数的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: 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';
}
示例3: 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];
}
}
示例4: 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());
}
}
示例5: 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);
}
示例6: 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;
}
}
示例7: open
/**
* Open session, adjust UID if required
*/
public static function open($admin = false)
{
if (PHP_SESSION_ACTIVE == session_status()) {
throw new \LogicException('Session already open');
}
// automatic admin mode for command line testing if root
$session_file = session_save_path() . DIRECTORY_SEPARATOR . 'sess_' . static::SESSION_ID;
if (file_exists($session_file) && is_readable($session_file)) {
$session_owner = fileowner($session_file);
if ($session_owner !== posix_getuid() && 0 === posix_getuid()) {
// echo("o: $session_owner\n");
$admin = true;
}
$_SESSION['_dirty'] = microtime();
}
// set effective uid of session owner
if ($admin) {
static::$pre_session_uid = posix_getuid();
posix_seteuid(posix_getpwnam(static::SESSION_ADMIN_USER)['uid']);
}
// tie all users to single session
session_id(static::SESSION_ID);
if (false === session_start()) {
throw new \RuntimeException('Could not start session');
}
// update sesson with current configuration
// TODO check if necessary
foreach (ConfigDB::read('cfg_engine') as $row) {
$_SESSION[$row['param']] = $row['value'];
}
}
示例8: awpcp_setup_uploads_dir
function awpcp_setup_uploads_dir()
{
global $wpcontentdir;
$permissions = awpcp_directory_permissions();
$upload_dir_name = get_awpcp_option('uploadfoldername', 'uploads');
$upload_dir = $wpcontentdir . '/' . $upload_dir_name . '/';
// Required to set permission on main upload directory
require_once AWPCP_DIR . '/fileop.class.php';
$fileop = new fileop();
$owner = fileowner($wpcontentdir);
if (!is_dir($upload_dir) && is_writable($wpcontentdir)) {
umask(0);
mkdir($upload_dir, $permissions);
chown($upload_dir, $owner);
}
$fileop->set_permission($upload_dir, $permissions);
$images_dir = $upload_dir . 'awpcp/';
$thumbs_dir = $upload_dir . 'awpcp/thumbs/';
if (!is_dir($images_dir) && is_writable($upload_dir)) {
umask(0);
@mkdir($images_dir, $permissions);
@chown($images_dir, $owner);
}
if (!is_dir($thumbs_dir) && is_writable($upload_dir)) {
umask(0);
@mkdir($thumbs_dir, $permissions);
@chown($thumbs_dir, $owner);
}
$fileop->set_permission($images_dir, $permissions);
$fileop->set_permission($thumbs_dir, $permissions);
return array($images_dir, $thumbs_dir);
}
示例9: 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;
}
示例10: rf_chmod
/**
* Chmod a file.
*/
function rf_chmod($args)
{
$args = unserialize($args);
$path = $args['path'];
$mode = $args['mode'];
try {
if (!is_writable($path)) {
throw new RFUtilException(RFUtilException::UNWRITABLE_PATH);
}
$owner = fileowner($path);
$self = posix_getuid();
// can write, not owner owner
if ($owner != $self) {
$t = tempnam('/tmp', 'rf');
$result = copy($path, $t);
if (!$result) {
throw new RFUtilException(RFUtilException::CHMOD_COPY_FAILED);
}
$result = unlink($path);
if (!$result) {
throw new RFUtilException(RFUtilException::CHMOD_UNLINK_FAILED);
}
$result = rename($t, $path);
if (!$result) {
throw new RFUtilException(RFUtilException::CHMOD_RENAME_FAILED);
}
chgrp($path, 'ousers');
}
} catch (RFUtilException $e) {
return $e->getCode();
}
$result = chmod($path, $mode);
return $result;
}
示例11: _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());
}
}
示例12: has_different_permissions
function has_different_permissions($file)
{
if (!file_exists($file)) {
return false;
}
return fileowner($file) != getmyuid();
}
示例13: 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();
}
示例14: 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;
}
示例15: bug_report_check_user
/**
* Checks if user can use bug_report plugin
*
* @return boolean
*
* @since 1.5.1
*
*/
function bug_report_check_user()
{
global $username, $bug_report_allow_users, $bug_report_admin_email;
bug_report_init();
if (file_exists(SM_PATH . 'plugins/bug_report/admins')) {
$auths = file(SM_PATH . 'plugins/bug_report/admins');
array_walk($auths, 'bug_report_array_trim');
$auth = in_array($username, $auths);
} else {
if (file_exists(SM_PATH . 'config/admins')) {
$auths = file(SM_PATH . 'config/admins');
array_walk($auths, 'bug_report_array_trim');
$auth = in_array($username, $auths);
} else {
if (($adm_id = fileowner(SM_PATH . 'config/config.php')) && function_exists('posix_getpwuid')) {
$adm = posix_getpwuid($adm_id);
$auth = $username == $adm['name'];
} else {
$auth = false;
}
}
}
if (!empty($bug_report_admin_email) && $bug_report_allow_users) {
$auth = true;
}
return $auth;
}