PDA

View Full Version : سوال: چگونه فایلهای داخل یک فولدر رو بررسی کنم؟



pirmard66
سه شنبه 22 مرداد 1392, 12:24 عصر
سلام و عرض ادب

من میخوام یک فولدر بسازم و توی فولدر عکس کپی کنم از سایتهای دیگه با دستور Copy

حالا چکار کنم که اسمی که به فایل میدم داخل فولدر موجود نباشه!

یعنی کاری کنم که اگه دید این اسم داخل فولدر موجود هست،بیاد اسم رو عوض کنه!

منتظر راهنمایی شما عزیزان هستم!

MRmoon
سه شنبه 22 مرداد 1392, 12:28 عصر
file_exists بررسي موجو بودن فايل
rename تعويض نام و محل فايل
glob يافت فايل هاي يك دايركتوري
unlink حذف كردن يك فايل

يكم بد توضيح دادي بيشتر توضيح بده. اگرم توابع بالا بكارت اومد كه هيج.

pirmard66
سه شنبه 22 مرداد 1392, 13:02 عصر
ببینید من میخوام مثلا یک عکس از یک سایت با دستور copy دریافت کنم.

بعد داخل یک فولدر ذخیره کنم.(البته به وقت کپی کردن اسم عکس رو تغییر میدم.)

ولی میخوام اگه مثلا فایل 1.jpeg داخل فولدر pic موجود بود، rename بشه به مثلا 1_1.jpeg

و الی آخر ...

مثلا اگه 1_1.jpeg هم بود یکی بره بالاتر و بشه 1_2.jpeg

امیدوارم دوستان منظورمو فهمیده باشن!

sh.n.n786
سه شنبه 22 مرداد 1392, 14:59 عصر
درود و ...
دوست عزیز اینو نوشتم نتونستم تست کنم اما 90% فکر کنم کار میده



<?php
$num = 1;
$Path = 'new/';
$FileName = 'test.jpg';
do{
if(file_exists($Path.$FileName)){
$NewFile = basename($FileName, substr($FileName , -4)).' ('.$num.')'.substr($FileName , -4);
$num++;
}
else{
copy($FileName, $Path.$FileName);
return true;
}
if(file_exists($Path.$NewFile)){
$flag = 1;
}
else{
copy($FileName, $Path.$NewFile);
$flag = 2;
}
}while($flag < 2);
?>

موفق باشی

pirmard66
سه شنبه 22 مرداد 1392, 15:36 عصر
ممنون دوست من...ولی مشکل داشت ماله شما..

خودم یکی نوشتم ولی فقط دوتا کپی میکنه...

یعنی اول میاد 1.jpg رو کپی میکنه، بعد فایل بعدی رو اگه 1.jpg بود تبدیل میکنه به 2.jpg و اونم کپی میکنه..ولی دیگه کپی نمیکنه فقط همین دوتا و بعدی هارو جایگزین میکنه،مغزم هنگ:گیج:!



<?php
$file = 'http://www.vitamin-ha.com/wp-content/uploads/2013/08/More-pincushion-craft-ideas-07.jpg';
$dir='522/';
$frmt='.jpeg';
$name=1;
$pic=$dir.$name.$frmt;

if ( file_exists($pic))
{
$name++;

echo "این فایل موجود است، تغییر نام فایل...";

rename($pic,$dir.$name.$frmt);

copy($file, $pic);


}


if ( copy($file, $pic) )
{

echo "success";
}
else{
echo "failed";
}


?>


دوستان مشکل این کد رو بگن تا حلش کنم!

sh.n.n786
سه شنبه 22 مرداد 1392, 15:51 عصر
درود و ...
کدی خدمتتون ارسال کردم اجرا کردم خوشبختانه کاملا کار میده و بی هیچ مشکلی کار میکنه
لطفا ارور کد بنده رو بنویسید تا برسی کنم
موفق باشید

pirmard66
سه شنبه 22 مرداد 1392, 16:02 عصر
کد شما از یک فولدر کپی میکنه! و یک قسمتهاییش زیادیه(substr) (یعنی لازم نیست باشه وقتی هر قسمت از ادرس رو داخل متغیر گذاشتیم!

کد منو تست کن ببین مشکلش کجاست!

ممنون دوست من..

sh.n.n786
سه شنبه 22 مرداد 1392, 16:19 عصر
درود و ...
خوب یه کم به کد توجه میکردین متوجه میشدین من اون Do While رو برای قشنگی نگذاشتم برای این بود که اگه دفعه اول و دوم تکراری بود دفعات بعدی رو خودکار چک کنه
از همون کد استفاده کنید
موفق باشید

pirmard66
سه شنبه 22 مرداد 1392, 16:39 عصر
ممنونم دوست من...

ولی داخل کد من جواب نمیده!

دوستان کسی واسه کد من راهنمایی نداره؟