View Full Version : سوال: سوال در مورد حذف فایل های خاص
persian-boy
پنج شنبه 06 بهمن 1390, 17:41 عصر
سلام دوستان
من یک فولدر دارم که داخلش کلی عکس هست . حالا من میخوام عکس هایی که آخرشون به شکل الگوی زیر هست حذف بشن
jpg.عددXعدد
مثلا میخوام این عکس ها حذف بشن ( مثلا) :
picture-190x500.jpg
picture-87x250.jpg
picture-856x58.jpg
picture-587x55.jpg
picture-18x40.jpg
با glob میشه اینکارو کرد
<?php
echo count(glob('*-*x*.jpg')).'<br>';
foreach (glob('*-*x*.jpg') as $pic) {
unlink($pic);
}
?>
ولی مشکل اینجاست که اگه عکسی وسطاش حرف x باشه اون عکس هم حذف میشه .
مثلا این عکس که نباید حذف بشه ، حذف میشه
001-bentley-mulsanne-executive-interior-concept-opt.jpg
من فقط میخوام عکس هایی که آخرش اون الگو هست حذف بشه
ممنون میشم راهنمایی بفرمایید . البته فکر نکنم با glob بشه
yones_safari
پنج شنبه 06 بهمن 1390, 18:57 عصر
درود
کد زیر رو جایگزین کن درست میشه.
foreach (glob('*-*x*[0-9].jpg') as $pic)
unlink($pic);
persian-boy
جمعه 07 بهمن 1390, 13:25 عصر
سلام
ببینید این نمونه عکس هایی که سلکت میشه
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_1.jpg
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_2-150x150.jpg
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_2-300x168.jpg
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_2.jpg
اولی و آخری متاسفانه نباید سلکت بشه
tux-world
جمعه 07 بهمن 1390, 14:12 عصر
ببین این کد جواب میده؟ تست نکردم خودم
foreach (glob('*.jpg') as $pic)
{
preg_match('^[-^]+x+[^].jpg',$pic, $matches);
unlink($matches);
}
فقط اینطوری میشه اونا رو پیدا کرد.
tux-world
جمعه 07 بهمن 1390, 14:16 عصر
اطلاعات بیشتر:http://weblogtoolscollection.com/regex/regex.php?page=3
persian-boy
جمعه 07 بهمن 1390, 14:33 عصر
نه متاسفانه کد شما ارور میده
yones_safari
جمعه 07 بهمن 1390, 15:05 عصر
سلام
ببینید این نمونه عکس هایی که سلکت میشه
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_1.jpg
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_2-150x150.jpg
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_2-300x168.jpg
110922131939_zoubin-8_976x549_ll_nocredit_002-www.iranvij.ir_2.jpg
اولی و آخری متاسفانه نباید سلکت بشه
عزیزم شما بالا عکسهای دیگه ای گفته بودی اعلان هم یه عکس های دیگه ای میدی؟؟؟؟؟صبر کن اعلان کدش رو برات مینویسم.
persian-boy
جمعه 07 بهمن 1390, 15:19 عصر
دوست عزیز نزدیک به 5000 عکس توش هست ، من به صورت رندوم عرض کردم
میخوام عکس هایی که آخرین عددXعدد هست پاک بشه
yones_safari
جمعه 07 بهمن 1390, 15:58 عصر
اگه اعداد آخری همشون 3 رقمی باشند دستور زیر جواب میده در غیر این صورت باید از عبارات منظم استفاده بشه.
foreach (glob('*-[0-9][0-9][0-9]x[0-9][0-9][0-9].jpg') as $pic)
unlink($pic);
yones_safari
جمعه 07 بهمن 1390, 17:18 عصر
اینم با استفاده از عبارات منظم نوشتم که برای همه حالتها جواب میده.بهتره از این استفاده کنی.
foreach (glob('*.jpg') as $pic)
{
preg_match("/^.*-[0-9]*x[0-9]*.jpg$/",$pic,$matches);
$t=implode("",(array)$matches);
@unlink($t);
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.