PDA

View Full Version : راهنمایی در رابطه با ساخت یک نرم افزار کوچیک تغییر نام



abbas3zaar
جمعه 13 فروردین 1395, 14:48 عصر
سلام. دوستان من آرشیو فیلم دارم و Rename کردن فایلهاش برام وقت زیادی میگیره. من یه فکری به ذهنم رسیده و میخواستم شما هم راهنماییم کنین در مورد این روش

نام فایل های دانلود شده من مثلا اینجوریه:

Hotel Transylvania 2 2015 720p BluRay (Patogh-DL).mkv

که من به این صورت تغییر نامشون میدم:

Hotel Transylvania 2 (2015)

میخوام یک پوشه رو بهش بدم و محتویات پوشه رو یکجا تغییر نام بده به اینصورت که فایلی با نام Hotel Transylvania 2 2015 720p BluRay (Patogh-DL).mkv رو بیاد از اولین کلمه که H هست شروع کنه و وقتی به تاریخ 2015 رسید کاراکترهای بعد از تاریخ رو حذف و تاریخ رو داخل پرانتز بزاره که بشه اینجوری Hotel Transylvania 2 (2015)

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

Farshid007
جمعه 13 فروردین 1395, 15:51 عصر
روش ساده:
کلمات رو با کاراکتر فاصله از هم جدا جدا کنیم بریزیم تو ارایه
تو ارایه اندیسی رو پیدا کنیم که چهار تا عدد پشت سر همه و اولین عددش یا 1 یا 2 (یافتن تاریخ)
بعد موقیعت این اندیس تاریخ رو تو جمله کل (رشته اصلی پیدا کینم )
زیر رشته رو که از اول رشته اصلی هست تا موقعیت اون تاریخ + 4 (خود تاریخ ) ببریم
سپس با str_replace تاریخ رو بکینم تو پرانتز
راه بعدی:
استفاده از عبارات عمومی
چون زیاد درگیر این عبارات عمومی نشدم خوب نمیدونم چطور باید بزنی
ولی بگردی زیاد هست

abbas3zaar
جمعه 13 فروردین 1395, 19:13 عصر
کلمات رو با کاراکتر فاصله از هم جدا جدا کنیم بریزیم تو ارایه



اول میایم با دستور زیر رشته رو جدا میکنیم:


$string = 'Hotel Transylvania 2 2015 720p BluRay (Patogh-DL)';
$convert = explode(' ', $string);
print_r($convert);

که خروجیش میشه این:


Array
(
[0] => Hotel
[1] => Transylvania
[2] => 2
[3] => 2015
[4] => 720p
[4] => BluRay
[4] => (Patogh-DL)
)

تا اینجا حله؟
بعد اینو رو دیگه سخت شد برام ، میشه با مثال توضیح بدین؟ چون فکر نکنم کدنویسیش زیاد باشه

Farshid007
شنبه 14 فروردین 1395, 05:40 صبح
$string = 'Hotel Transylvania 2 1996 720p BluRay (Patogh-DL)';
$convert = explode(' ', $string);
foreach($convert as $key=>$val)
{
if(strlen($val)==4&&is_numeric($val)&&eregi('^[12]+[0-9]+[0-9]+[0-9]',$val))
{
//Tarikh yaft shod
$tarikh=$val;
$string=substr($string,0,strpos($string,$val)+4);
$string=str_replace($val,'('.$val.')',$string);
break;
}
}
echo $string;


چند بار با چیز های مختلف تستش کنید

Farshid007
شنبه 14 فروردین 1395, 05:45 صبح
این پست اضافی بود دیگه یکی پاکش کنه لطفننن:لبخند:

abbas3zaar
شنبه 14 فروردین 1395, 15:24 عصر
$string = 'Hotel Transylvania 2 1996 720p BluRay (Patogh-DL)';
$convert = explode(' ', $string);
foreach($convert as $key=>$val)
{
if(strlen($val)==4&&is_numeric($val)&&eregi('^[12]+[0-9]+[0-9]+[0-9]',$val))
{
//Tarikh yaft shod
$tarikh=$val;
$string=substr($string,0,strpos($string,$val)+4);
$string=str_replace($val,'('.$val.')',$string);
break;
}
}
echo $string;


چند بار با چیز های مختلف تستش کنید

مرسی. با چند تا رشته های مختلف امتحان کردم خوب بود، حالا یه کار میمونه اینه که یه آدرس پوشه بهش بدیم و داخلش هرچی فایل هست رو تغییر نام بده. این به چه صورت میشه؟

مثلا:

بدیم H:\Movie

و اجرا رو بزنیم و دسته جمعی تغییر بده. این تکی تغییر میده

Farshid007
یک شنبه 15 فروردین 1395, 03:40 صبح
اول باید هرچی فایل تو پوشه هستو پیدا کنیم فکر کنم تابع scandir مناسب باشه
بازم ی سرچ کنید.
بعد دوباره ی حلقه بزنید و تک تک این عملیاتو روشون اجرا کنید
این کد قبلیارو به شکل ی تابع دربیار