PDA

View Full Version : حرفه ای: یک سوال فنی در مورد کپی کردن فایل با PHP



abolfazl-z
جمعه 18 بهمن 1392, 13:36 عصر
سلام دوستان :لبخندساده:

من می خواهم چند فایل رو با PHP کپی کنم و سپس اون فایل ها رو حذف کنم یعنی درواقع همون cut خودمون.

خوب اینجا من با تابع copy یک کپی میگیرم سپس میام برای اطمینان بیشتر md5 های فایل ها را بررسی می کنم که ببینم خوب کپی شده یا نه !

در اینجا من مشکل دارم که حجم فایل خیلی زیاد هست و md5_file آن طول می کشد !

آیا لزومی دارد که من فایل ها را با تابع md5_file بررسی کنم ؟

اگر rename کنم بجای کپی و حذف چطور ؟ امن هست ؟ فایل خراب نمیشه ؟

leaping
یک شنبه 20 بهمن 1392, 01:09 صبح
سلام دوستان :لبخندساده:

من می خواهم چند فایل رو با PHP کپی کنم و سپس اون فایل ها رو حذف کنم یعنی درواقع همون cut خودمون.

خوب اینجا من با تابع copy یک کپی میگیرم سپس میام برای اطمینان بیشتر md5 های فایل ها را بررسی می کنم که ببینم خوب کپی شده یا نه !

در اینجا من مشکل دارم که حجم فایل خیلی زیاد هست و md5_file آن طول می کشد !

آیا لزومی دارد که من فایل ها را با تابع md5_file بررسی کنم ؟

اگر rename کنم بجای کپی و حذف چطور ؟ امن هست ؟ فایل خراب نمیشه ؟

آخه مهم اینه که فایلت چی باشه؟
مثلا فیلمه؟ :لبخند:

MMSHFE
یک شنبه 20 بهمن 1392, 08:55 صبح
خوب چرا از خود دستور move (توی ویندوز) یا mv (توی لینوکس) استفاده نمیکنید (با shell_exec) ؟

abolfazl-z
یک شنبه 20 بهمن 1392, 18:19 عصر
آخه مهم اینه که فایلت چی باشه؟
مثلا فیلمه؟ :لبخند:
نه عکس همش !

خوب چرا از خود دستور move (توی ویندوز) یا mv (توی لینوکس) استفاده نمیکنید (با shell_exec) ؟

ممکن هست وسط کار خراب بشه (فایل ها خیلی مهم هستند!)
حجم فایل ها 400 یا 800 مگ هست.

اول میام کپی می کنم بعد میام پاک می کنم.

اگر از دستور move استفاده کنم سرعت بالا میره ؟

تابع rename مثل move نیست ؟

MMSHFE
یک شنبه 20 بهمن 1392, 19:43 عصر
سیستم عامل هم اگه فایل با موفقیت منتقل نشه حذفش نمیکنه. فرقی نمیکنه rename باشه یا move مهم اینه که از سیستم عامل بخواین انجام بده نه با زبانهای واسط مثل PHP و...

abolfazl-z
یک شنبه 20 بهمن 1392, 21:35 عصر
سیستم عامل هم اگه فایل با موفقیت منتقل نشه حذفش نمیکنه. فرقی نمیکنه rename باشه یا move مهم اینه که از سیستم عامل بخواین انجام بده نه با زبانهای واسط مثل PHP و...

من با هر دو امتحان کردم که 800 مگ رو با تابع rename پی اچ پی توی 7 ثانیه و دستور move در تابع exec هشت ثانیه.

تفاوت چندانی ندارند. ولی باز دستور mov بهتر است.

abolfazl-z
یک شنبه 20 بهمن 1392, 21:49 عصر
البته این تفاوت ثانیه ها به خیلی چیز های دیگه بستگی داره. شاید ممکن هست یک نرم افزار داره در همان لحظه از هارد استفاده می کند!

abolfazl-z
یک شنبه 20 بهمن 1392, 22:17 عصر
طی تحقیقاتی که انجام دادم درواقع با اجرای دستور exec یک پروسه جدید ایجاد میشه و این خودش یک مزیت هست. ولی باز تفاوتی چندانی در سرعت ندارند!

از آنجایی که این برنامه یک برنامه دسکتاپ است من priority آپاچی رو بالا می برم تا سرعت بالاتر برود.