بدست آوردن اطلاعات فایل به وسیله آدرس

amirepsilon

Active Member
سلام
دوستان من آدرس فایل رو دارم .
مثلا این :
PHP:
../images/logo.gif
به وسیله همین یک رشته میخوام این اطلاعات رو بدست بیارم :
1. نام فایل
2. پسوند (یا همون نوع)

البته با تابع stat میتونم حجم رو بدست بیارم.
ممنون
 

justpersian

Member
به وسیله همین یک رشته میخوام این اطلاعات رو بدست بیارم :
1. نام فایل
2. پسوند (یا همون نوع)
من که متوجه نمیشم
مگه تو همین آدرسی که دادی logo نمیشه اسم فایل gif هم نوع فایل ؟!
بیشتر توضیح بده
 

foranyone

Well-Known Member
یکبار برای نقطه explode کن ، پسوند فایل رو می تونی از طریق index اول آرایه بدست بیارین .

برا نام فایل هم / رو explode کن ، با count تعداد اعضای آرایه رو پیدا کن و از عضو آخر به راحتی میشه با روش اول نام فایل رو بست آورد
 
از basename استفاده کن تا اسم و پسوند فایل رو بهت بده.بعد هم می تونی با explode اون دو تا قسمت رو از هم جدا کنی.
 
مثلاً در مورد http://localhost/forums/test.php تابع basename میاد test.php رو برمیگردونه.کلاً تابع پر استفاده ایه.ولی جایی که خیلی کاربرد داره موقع آپلود هست که صاف و ساده اسم فایل رو با پسوندش میده.مثلاً تو اینجا من ازش استفاده کردم.
 

amirepsilon

Active Member
سلام
ممنون
ولی این:
filetype(); نوع فایل
میاد میگه file هست !!!!
ولی من میخوام بگه چه نوعی هست ؟
عکس فیلم . . .
 

D.A.V.O.O.D

Member
اگه می خوای از پسوند فایلت نوعش رو بفهمی کافیه از تابع pathinfo استفاده کنی به این صورت :

PHP:
$File = "Images/Pic/My.gif";
$a = pathinfo( $a );
$Ext = $a['extension'];
اگه می خوای ببینی که این تابع غیر از نوع فایل ، چه چیزهای دیگری می دهد ؛ کافیه آرایه $a رو چاپ کنی :

PHP:
print_r($a);
امیدوارم مشکلت حل بشه ، موفق باشی
 

k2-4u

Well-Known Member
سلام اسکریپ زیر رو برای این کار نوشتم
فیلتر هم برای امنیتش گذاشتم
PHP:
$filename='namesala.jpg';
$file=end(split('\.',$filename));
if(eregi('^([a-z0-9]+)$',$file,$out)){
	$filetype=$out[0];
}elseif(empty($file)){
	$filetype=filename;
}else{
	echo 'Error Filter';
}
echo $filetype;
 

D.A.V.O.O.D

Member
کوروش جان ، شما چرا کلا از pathinfo خوشت نمی یاد ؟ مگه چه اشکالی داره !؟

کدی که شما بالا گذاشتید ، با نهایت احترام مشکل داره ، چون اگه توی نام فایلت یه دات ( . ) داشته باشه ، نوع فایل را نادرست نشون میده !

موفق باشی
 
آخرین ویرایش:

k2-4u

Well-Known Member
داود جان . تابع end رو گذاشتم که . اینطوری نشه
با چند تا دات مشکی پیش نمیاد

بعدشم . منو شما هم زمان پست ارسال کردیم
اگه پست شما رو میدیدم . پست نمی دادم

تابع pathinfo فکر خیلی بهتریه اصلا یادم نبود ای ول
:wink:
 

D.A.V.O.O.D

Member
درسته ، حق با شماست ، end رو ندیدم ، عذر می خوام .

ولی کلا واسه این موارد pathinfo خیلی بهتره ، چون با اعمال یه تابع 4 تا مشخصات خوب به ما می ده ، که اگه بخواهیم با تابعی غیر از این بدست می آوریم کمه کم ، 6 خطی باید کد نویسی باشه .

موفق باشید
 

foranyone

Well-Known Member
راستی داوود من یه اشکال دارم :
PHP:
$File = "Images/Pic/My.gif";
$a = pathinfo( $a );
$Ext = $a['extension'];

قضیه متغیر a چیه ؟ و از متغیر فایل کجا استفاده شده؟
 
این کدی که نوشتی کار نمیکنه!؟؟!باید بجای $a همون $file رو به تابع pathinfo بدی.متغیر a هم یه آرایه هست.
 

D.A.V.O.O.D

Member
سلام ، عذر می خوام ، بله حق با شماست ، داخل آرگومان pathinfo باید متغیر $FIle باشه !
کد درست به شکل زیر است :

PHP:
$File = "Images/Pic/My.gif";
$a = pathinfo( $File );
$Ext = $a['extension'];
 

جدیدترین ارسال ها

بالا