PDA

View Full Version : سوال: سوال در مورد حذف فایل های خاص



persian-boy
پنج شنبه 06 بهمن 1390, 16: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, 17:57 عصر
درود
کد زیر رو جایگزین کن درست میشه.

foreach (glob('*-*x*[0-9].jpg') as $pic)
unlink($pic);

persian-boy
جمعه 07 بهمن 1390, 12: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, 13:12 عصر
ببین این کد جواب میده؟ تست نکردم خودم

foreach (glob('*.jpg') as $pic)
{
preg_match('^[-^]+x+[^].jpg',$pic, $matches);
unlink($matches);
}
فقط اینطوری میشه اونا رو پیدا کرد.

tux-world
جمعه 07 بهمن 1390, 13:16 عصر
اطلاعات بیشتر:http://weblogtoolscollection.com/regex/regex.php?page=3

persian-boy
جمعه 07 بهمن 1390, 13:33 عصر
نه متاسفانه کد شما ارور میده

yones_safari
جمعه 07 بهمن 1390, 14: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, 14:19 عصر
دوست عزیز نزدیک به 5000 عکس توش هست ، من به صورت رندوم عرض کردم

میخوام عکس هایی که آخرین عددXعدد هست پاک بشه

yones_safari
جمعه 07 بهمن 1390, 14: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, 16:18 عصر
اینم با استفاده از عبارات منظم نوشتم که برای همه حالتها جواب میده.بهتره از این استفاده کنی.


foreach (glob('*.jpg') as $pic)
{
preg_match("/^.*-[0-9]*x[0-9]*.jpg$/",$pic,$matches);
$t=implode("",(array)$matches);
@unlink($t);
}