PDA

View Full Version : تشخیص فایل از فولدر(اگه امکانش باشه میخوام پسوند فایل رو هم به دست بیارم)



olampiad
جمعه 14 فروردین 1394, 23:38 عصر
سلام و خسته نباشید
من با استفاده از تابع ُscandir نام تمام فایل ها و فولدر هارو به دست آوردم.
حالا میخوام تشخیص بدم که کدوم فایل هستش و کدوم فوبدر و در بالای نام فولدر عکس فولدر قرار بدم و در بالای فایل عکس همون فایل رو.
حالا من با چ تابعی میتونم این کار رو انجام بدم؟
چیزی که به دهنم میرسه اینه که فایل نقطه داره ولی فولدر نداره:
به چ تابعی میتونم بفهمم که تو نام فایل نقطه است یا نه؟
اگه نقطه داشت میخوام به حروف بعد نقطه دسترسی داشته باشم تا پسوند فایل رو به دست بیارم.
مرسی

hamedarian2009
شنبه 15 فروردین 1394, 00:04 صبح
با توابع is_dir (http://php.net/manual/en/function.is-dir.php) و is_file (http://php.net/manual/en/function.is-file.php) میتونی تشخیص بدی

id1385
شنبه 15 فروردین 1394, 00:31 صبح
/**
* read files and directorys and return an array
* @global type $directory_tree
* @param type $directory
* @param type $filter
* @return string
*/
/*public*/ function scanDirectoryRecursively($directory, $filter = FALSE) {
$dirs = scandir($directory);
foreach ($dirs as $file) {


if ($file != '.' && $file != '..') {
$path = rtrim($directory, "/") . '/' . $file;
if (is_readable($path)) {
global $directory_tree;
$subdirectories = explode('/', $path);
if (is_dir($path)) {
$this->scanDirectoryRecursively($path, $filter);
} elseif (is_file($path)) {
/**
* if file
*/
$extension = substr($path, strrpos($path, '.') + 1);
if ($filter === FALSE || $filter === $extension || (is_array($filter) && in_array($extension, $filter))) {
if (isset($path, $extension)) {
$directory_tree[] = array(
'Path' => $path,
'Type' => strtolower($extension)
);
}
}
}
}
}
}
return $directory_tree;
}



استفاده :

$phpFiles = $this->scanDirectoryRecursively($pluginDir, $filesType);



if (is_array($phpFiles)) {
foreach ($phpFiles as $file) {
if (isset($file["Path"], $file["Type"])) {
// ...
}
}
}



موفق باشید

olampiad
شنبه 15 فروردین 1394, 01:00 صبح
با سرچی که تو اینترنت کردم فهمیدم با preg_math میشه این کار رو کرد.
ولی من میخوام آخرین نقطه از متن رو پیدا کنم و حروف بعد از اون رو به دست آورم.
به این فایل نگا کنید
ali.webdesign.mohammad.jpg
من میخوام آخرین نقطه رو به دست بیارم و حروف یعد از اون رو به دست بیارم.
مرسی

MohammadReza1994
شنبه 15 فروردین 1394, 01:09 صبح
دستورات extension هست تو اینترنت سرچ کن.

alih110
شنبه 15 فروردین 1394, 01:11 صبح
با سرچی که تو اینترنت کردم فهمیدم با preg_math میشه این کار رو کرد.
ولی من میخوام آخرین نقطه از متن رو پیدا کنم و حروف بعد از اون رو به دست آورم.
به این فایل نگا کنید
ali.webdesign.mohammad.jpg
من میخوام آخرین نقطه رو به دست بیارم و حروف یعد از اون رو به دست بیارم.
مرسی

سلام
نیازی به preg_match نیست
چند راه برای این کار


$filename = 'mypic.gif';

// 1. The "explode/end" approach
$ext = end(explode('.', $filename));

// 2. The "strrchr" approach
$ext = substr(strrchr($filename, '.'), 1);

// 3. The "strrpos" approach
$ext = substr($filename, strrpos($filename, '.') + 1);

// 4. The "preg_replace" approach
$ext = preg_replace('/^.*\.([^.]+)$/D', '$1', $filename);

// 5. The "never use this" approach
// From: http://php.about.com/od/finishedphp1/qt/file_ext_PHP.htm
$exts = split("[/\\.]", $filename);
$n = count($exts)-1;
$ext = $exts[$n];

// 6.
$ext = pathinfo($filename, PATHINFO_EXTENSION);


ttp://www.cowburn.info/2008/01/13/get-file-extension-comparison/ (http://www.cowburn.info/2008/01/13/get-file-extension-comparison/)