صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از شماره 11 تا 20 , از مجموع 20

موضوع: مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

  1. #11
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    نقل قول نوشته اصلی توسط Azade.Kaveh نمایش پست ها
    کلا فانکشن fopen نمیتونه حجم بالا بخونه !

    حالا ایشون اومدن اول خوندنش بعد اومدن لاین به لاین while کردن...

    در ضمن اصلا فرض هم بگیریم که خونده شده باشه نه نشده ! یعنی بابت هر کوئری دیتابیس قراره 2 گیگ رم خورده بشه ؟ یعنی برای داشتن 100 کاربر آنلاین حداقل حداقل باید 200 گیگ رم در نظر گرفت !

    کار باید از بیس درست باشه عزیز دل !
    سلام، fopen تنها file handle resource به شما برمیگردونه و content فایل خوانده نمیشه فقط یک اشاره گر به فایل هست و شما محدودیتی برای fopen ندارید. تنها در خواندن فایل احتیاج به مموری پیدا میکنید که این مشکل را میتوانید با فایل پوینتر با خواندن به صورت لاین به لاین که دوستمون در بالا اشاره کردند حل کنید.

  2. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  3. # ADS




     

  4. #12
    عضو انجمن
    تاریخ عضویت
    Feb 2011
    نوشته ها
    217
    تشکر تشکر کرده 
    524
    تشکر تشکر شده 
    1,363
    تشکر شده در
    624 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    نقل قول نوشته اصلی توسط Azade.Kaveh نمایش پست ها
    کلا فانکشن fopen نمیتونه حجم بالا بخونه !

    حالا ایشون اومدن اول خوندنش بعد اومدن لاین به لاین while کردن...

    در ضمن اصلا فرض هم بگیریم که خونده شده باشه نه نشده ! یعنی بابت هر کوئری دیتابیس قراره 2 گیگ رم خورده بشه ؟ یعنی برای داشتن 100 کاربر آنلاین حداقل حداقل باید 200 گیگ رم در نظر گرفت !

    کار باید از بیس درست باشه عزیز دل !
    خیر دوست عزیز می تونید برای فایل های حجم بالا هم استفاده کنید
    بنده برای فایل های بالای 5 گیگ هم بدون مشکل استفاده کردم

    باز دوستان توضیحات کاملتر دادند

  5. #13
    عضو انجمن
    تاریخ عضویت
    Sep 2010
    نوشته ها
    713
    تشکر تشکر کرده 
    566
    تشکر تشکر شده 
    1,153
    تشکر شده در
    790 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    دوستان عزیز ممنون از همه ی راهنمایی ها .


    اول از همه پروژه شخصی هست این سرور هم فقط برای همین کار هست . کلا در هر لحظه فقط یک پردازش قرار هست اتفاق بیوفته پس مشکلی در منابع نخواهد بود


    دوم بنده نیاز دارم فایل رو یکجا بخونم و نه خط به خط مگر نه با fread مقدار حجم رو کم میکردم . نیاز هست که کل فایل خونده بشه به دلیل اینکه میخوام قسمت های مشابه رو حذف کنم . و بعد از اون میخوام اون فایل رو مدام مورد سرچ قرار بدم .


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

  6. #14
    عضو انجمن AtrafNet آواتار ها
    تاریخ عضویت
    Nov 2016
    نوشته ها
    259
    تشکر تشکر کرده 
    2,584
    تشکر تشکر شده 
    729
    تشکر شده در
    417 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    نقل قول نوشته اصلی توسط hoka نمایش پست ها
    دوستان عزیز ممنون از همه ی راهنمایی ها .


    اول از همه پروژه شخصی هست این سرور هم فقط برای همین کار هست . کلا در هر لحظه فقط یک پردازش قرار هست اتفاق بیوفته پس مشکلی در منابع نخواهد بود


    دوم بنده نیاز دارم فایل رو یکجا بخونم و نه خط به خط مگر نه با fread مقدار حجم رو کم میکردم . نیاز هست که کل فایل خونده بشه به دلیل اینکه میخوام قسمت های مشابه رو حذف کنم . و بعد از اون میخوام اون فایل رو مدام مورد سرچ قرار بدم .


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

    تو ویندوز نرم افزار EmEditor می تونه فایل های حجیم 4 گیگ به بالا هم باز کنه و هم خودش سیستم Compare جهت مقایسه دو فایل داره.
    همینطوری گفتم اگر صرفاً فقط هدف باز کردن تغییراته شاید به دردتون بخوره.

    ولی اگه هدف فقط با PHP هستش به نظرم این عدد 2147483647 که محدودیتش هست به واحد بایت هستش و اگه دو بار تقسیم بر 1024 کنیم میشه فهمید که محدودیتش روی 2048 مگابایت فیکس شده ولی مموری مورد نیاز شما 7351551328 بایت هست که میشه 7 گیگ.
    اصولاً اگه منابع سخت افزاری RAM و CPU و همچنین سرعت IO بالایی داشته باشید شاید بشه با تغییر memory_limit به حجم های زیاد درستش کرد ولی اصولی نیست.
    به نظرم بهتره روش های دیگه خوندن فایل مثل همین fread و fopen با fget و file و... هم برای خوندن کامل تست کنید ببینید با کدومش php منابع RAM کمتری مصرف میکنه بعدش من نمی دونم هدف شما چیه ولی ببینید آیا حداقل نمیشه مرحله رو جوری تیکه تیکه کرد؟ مثلاً یه مقدار از کار که انجام شد باقی اش رو بذارید برای دفعه بعد و از ادامه فایل شروع کنید؟
    ویرایش توسط AtrafNet : March 30th, 2017 در ساعت 16:25

  7. تعداد تشکر ها ازAtrafNet به دلیل پست مفید


  8. #15
    عضو انجمن
    تاریخ عضویت
    Sep 2010
    نوشته ها
    713
    تشکر تشکر کرده 
    566
    تشکر تشکر شده 
    1,153
    تشکر شده در
    790 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    نقل قول نوشته اصلی توسط AtrafNet نمایش پست ها
    تو ویندوز نرم افزار EmEditor می تونه فایل های حجیم 4 گیگ به بالا هم باز کنه و هم خودش سیستم Compare جهت مقایسه دو فایل داره.
    همینطوری گفتم اگر صرفاً فقط هدف باز کردن تغییراته شاید به دردتون بخوره.

    ولی اگه هدف فقط با PHP هستش به نظرم این عدد 2147483647 که محدودیتش هست به واحد بایت هستش و اگه دو بار تقسیم بر 1024 کنیم میشه فهمید که محدودیتش روی 2048 مگابایت فیکس شده ولی مموری مورد نیاز شما 7351551328 بایت هست که میشه 7 گیگ.
    اصولاً اگه منابع سخت افزاری RAM و CPU و همچنین سرعت IO بالایی داشته باشید شاید بشه با تغییر memory_limit به حجم های زیاد درستش کرد ولی اصولی نیست.
    به نظرم بهتره روش های دیگه خوندن فایل مثل همین fread و fopen با fget و file و... هم برای خوندن کامل تست کنید ببینید با کدومش php منابع RAM کمتری مصرف میکنه بعدش من نمی دونم هدف شما چیه ولی ببینید آیا حداقل نمیشه مرحله رو جوری تیکه تیکه کرد؟ مثلاً یه مقدار از کار که انجام شد باقی اش رو بذارید برای دفعه بعد و از ادامه فایل شروع کنید؟
    ببینید مموری لیمیت و کلا لیمیت ها روی بینهایت هست . مشکل با لیمیت بودن fread و file_get_contents هست که روی 2 گیگ لیمیت شدن

    در مورد بخش بخش کردن هم خیر متاسفانه . چون معلوم نیست قسمت تکراری در کدوم بخش قرار میگیره نیاز دارم که فایل رو یک جا بخونم در php .

    - - - Updated - - -

    البته این 7 گیگ یکی از فایل ها هست فقط. مجموع فایل ها بیش از 20 گیگ هست

  9. #16
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    ورژن php چند هست ؟ os سیستم 32 یا 64 بیت هست ؟

    قراره 2 تا فایل همزمان مقایسه کنید ؟ یا قراره یک داده تکراری (که میدونید چی هست) در فایل حجیم پیدا و جایگزین کنید ؟

    اگر سیستم 32 بیت هست مقدار حجم PHP_INT_MAX به صورت زیر حساب میشود :

    2 به توان 32 منهای 1 : 2147483647 بایت یا همون 2 گیگ

    اگر قرار 2 تا فایل را همزمان مقایسه کنید که کلا php رو بزارید کنار برای این کار، اگر یک داده ای دارید و میخواید در یک فایل حجیم پیدا و جایگزین کنید، به هم صورت خطی یا به صورت آفست خیلی راحت میتونید انجام بدید.

  10. تعداد تشکر ها ازT.Toosi به دلیل پست مفید


  11. #17
    عضو انجمن
    تاریخ عضویت
    Sep 2010
    نوشته ها
    713
    تشکر تشکر کرده 
    566
    تشکر تشکر شده 
    1,153
    تشکر شده در
    790 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    ورژن php چند هست ؟ os سیستم 32 یا 64 بیت هست ؟

    قراره 2 تا فایل همزمان مقایسه کنید ؟ یا قراره یک داده تکراری (که میدونید چی هست) در فایل حجیم پیدا و جایگزین کنید ؟

    اگر سیستم 32 بیت هست مقدار حجم PHP_INT_MAX به صورت زیر حساب میشود :

    2 به توان 32 منهای 1 : 2147483647 بایت یا همون 2 گیگ

    اگر قرار 2 تا فایل را همزمان مقایسه کنید که کلا php رو بزارید کنار برای این کار، اگر یک داده ای دارید و میخواید در یک فایل حجیم پیدا و جایگزین کنید، به هم صورت خطی یا به صورت آفست خیلی راحت میتونید انجام بدید.
    2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    CentOS release 6.8 (Final)
    php 5.6.30


    عرضم به حضورتون قرار هست چندتا فایل رو اول از همه عبارات مشابه هشون رو حذف کنم preg_match_all و ... و بعد همرو یک فایل کنم و در اون فایل چیز هایی که میخوام رو پیدا کنم با preg_match

    که در هردو بخش حجم فایل ها بیشتر از دو گیگ هست

    از نظر کد نویسی مشکلی نیست ولی متاسفانه تا حالا به فایل بزرگ تر از 2 گیگ نخورده بودم که به این مشکل برخورد کنم
    ویرایش توسط hoka : March 30th, 2017 در ساعت 22:02

  12. #18
    عضو دائم T.Toosi آواتار ها
    تاریخ عضویت
    Jun 2015
    نوشته ها
    1,071
    تشکر تشکر کرده 
    278
    تشکر تشکر شده 
    2,936
    تشکر شده در
    1,329 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    نقل قول نوشته اصلی توسط hoka نمایش پست ها
    2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    CentOS release 6.8 (Final)
    php 5.6.30


    عرضم به حضورتون قرار هست چندتا فایل رو اول از همه عبارات مشابه هشون رو حذف کنم preg_match_all و ... و بعد همرو یک فایل کنم و در اون فایل چیز هایی که میخوام رو پیدا کنم با preg_match

    که در هردو بخش حجم فایل ها بیشتر از دو گیگ هست

    از نظر کد نویسی مشکلی نیست ولی متاسفانه تا حالا به فایل بزرگ تر از 2 گیگ نخورده بودم که به این مشکل برخورد کنم
    ورژن php رو 7 کنید باید مشکلتون حل بشه.

    در int 64 بیت مقدار ماکزیموم حجم شما میشه : 9223372036854775808 بایت

    الان داره از int سی و دو بیت استفاده میکنه که بیشتر از 2گیگ رو نمیتونه هندل کنه.

  13. تعداد تشکر ها از T.Toosi به دلیل پست مفید


  14. #19
    عضو انجمن
    تاریخ عضویت
    Sep 2010
    نوشته ها
    713
    تشکر تشکر کرده 
    566
    تشکر تشکر شده 
    1,153
    تشکر شده در
    790 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    نقل قول نوشته اصلی توسط T.Toosi نمایش پست ها
    ورژن php رو 7 کنید باید مشکلتون حل بشه.

    در int 64 بیت مقدار ماکزیموم حجم شما میشه : 9223372036854775808 بایت

    الان داره از int سی و دو بیت استفاده میکنه که بیشتر از 2گیگ رو نمیتونه هندل کنه.
    ورژن 7 الان حجم ماکزیمم چقدر میشه ؟

    و ممنون میشم دستورات آپدیت php به 7 رو در دایرکت ادمین بفرمایید

  15. #20
    عضو انجمن
    تاریخ عضویت
    Sep 2010
    نوشته ها
    713
    تشکر تشکر کرده 
    566
    تشکر تشکر شده 
    1,153
    تشکر شده در
    790 پست

    پیش فرض پاسخ : مشکل : لیمیت بودن file_get_contents و fread به 2 گیگابایت

    متاسفانه ورژن 7 هم مشکل داشت و فایل بزرگ رو خوند ولی توی preg_match_all ارور گرفت
    Warning: preg_match_all(): Subject is too long in

صفحه 2 از 2 نخستنخست 12

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 3
    آخرين نوشته: November 7th, 2017, 13:35
  2. دریافت نقشه سایت توسط file_get_contents
    توسط iroo در انجمن PHP-MySQL
    پاسخ ها: 6
    آخرين نوشته: January 21st, 2017, 13:08
  3. تابع file_get_contents چیه ؟
    توسط amirhoseyn در انجمن دايرکت ادمين DirectAdmin
    پاسخ ها: 3
    آخرين نوشته: October 8th, 2013, 13:57
  4. Warning: file_get_contents()
    توسط tehro0n در انجمن سوالات و مشکلات
    پاسخ ها: 1
    آخرين نوشته: October 11th, 2012, 02:13
  5. Warning: file_get_contents
    توسط tehro0n در انجمن سوالات و مشکلات
    پاسخ ها: 1
    آخرين نوشته: September 18th, 2012, 16:40

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •