يستخدم Preg_replace أكثر من البايتات التي يسمح بها php5.2 افتراضيًا، وهو حجم pcre.backtrack_limit وpcre.recursion_limit.
منذ إصدار برنامج الإصدار الرسمي Discuz! 6.0.0، كان الجميع مشغولين بالترقية، ولكن بعض المكونات الإضافية بها مشكلات أقل من 6.0، مثل http://www.discuz.net/viewthread.php?tid=559133، هذا المكون الإضافي للبنك في php بالنسبة لمشكلة الشاشة البيضاء بعد التثبيت في البيئات 5.2.0 وما فوق، من وجهة نظر مستخدمي Discuz، نحتاج إلى مساعدة مؤلف البرنامج الإضافي في حل هذه
المشكلة آمل أن أتمكن من تقديم بعض الاقتراحات لك.
أولاً: يمكن تشغيل هذا المكون الإضافي بشكل طبيعي تحت 5.5، ولكن الشاشة ستكون بيضاء تحت 6.0.
من أجل زيادة إمكانية قراءة ملفات ذاكرة التخزين المؤقت للقالب، قام Discuz!6.0 بزيادة المسافة البادئة لملفات ذاكرة التخزين المؤقت، وقام بالفعل بتعديل بعض أجزاء معالجة القالب في templates.func.php.
هل يمكن أن يكون هذا هو السبب؟ في البداية، قررت في البداية أن المشكلة كانت هنا، لأنه بعد استبدال الكود المعدل بجزء من الكود 5.5، كان يتصرف بشكل طبيعي، لكنني كنت مكتئبًا للغاية ولم أتمكن من العثور على
السبب مشكلة في تنسيق الكتابة لقالب Bank.htm، لذلك كنت مكتئبًا للغاية وبدأت في تحليل القالب، لأكون صادقًا، من الصعب حقًا تحليل القالب عندما يكون كبيرًا جدًا. على ما يبدو لم يتم العثور على سبب. الأمر الأكثر إحباطًا هو
الخطوة الثانية: ثم وجدت أنه بعد تقسيم هذا القالب، تم تنفيذه بشكل طبيعي. في هذا الوقت، شككت في البداية فيما إذا كان خطأ المطابقة العادية قد حدث عندما كان حجم البيانات كبيرًا، لذلك ذهبت إلى bugs.php. net بدأت البحث في http://bugs.php.net/search.php ?c... ace&x=3&y=5. لقد بحثت وبحثت هنا، وأخيراً وجدت هذا المكان: http://bugs.php.net/bug .php?id=39405 ، واكتشفت فجأة أن هناك مشكلة في التكوين 5.2. بعد ضبط pcre.backtrack_limit وpcre.recursion_limit الكبيرين، تم حل المشكلة
وسبب كتابتي لهذا بالتفصيل هو مشاركة أفكاري لحل المشكلة :)