تغطية مباشرة لأحداث منتدى الإعلام الجديد المقام بمدينة أبوظبي
هل تقترح تمديد مسابقة سوالف كاست؟

 

العودة   سوالف سوفت > قسم تطوير وبرمجة المواقع للمتقدمين > PHP
المدوّنات البحث مشاركات اليوم اجعل كافة المشاركات مقروءة

رد  
 
LinkBack أدوات الموضوع
عضو نشيط
تاريخ التسجيل: Sep 2006-
#1 (permalink)  
Question مساعدة بمشكلة تقابلني ب fwrite و الكتابة في ملف php !!


السلام عليكم

أخواني الكرام . لدي مشكلة طارئة قابلتني . قمت بعمل فكرة من اجل تخفيف استعلامات ال mysql و قمت بنظام انه في حالة تعديل اي كونفيجريشن . يقوم محدثها بقواعد البيانات و بنفس الوقت يحدثها بملف php يقوم بحفظ قيم الفاريبلز هذه .. أعتمد في حفظ البيانات بالكتابة باستخدام دالة fwrite للكتابة في ملف php
المشكلة التي تقابلني انه عند استخدامي لهذه الدالة من اجل الكتابة . فتقوم بمحو أي كتابة بملف ال php الذي أكتب فيه ! و تضع فقط الفاريبلز التي كتبتها بالدالة و قيمها ! . لدرجة انها مسحت وسوم ال php

و هذا طبعاً غير عملي بالمره ! . لذلك أردت حلولكم لتفادي هذه المشكله و من اجل الكتابة بشكل طبيعي دون مشكله و دون ان تقوم بمسح اي فاريبلز موجوده اخري بالملف

أرجو المساعده عاجلاً






__________________
PHP Coder -- I Love PHP
ArabsProject غير متواجد حالياً   قديم 17-05-2008, 06:13 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#2 (permalink)  

ممكن يفيدك هذا الرد
http://www.swalif.net/softs/swalif45...0/#post1648318






mr_m غير متواجد حالياً   قديم 17-05-2008, 06:24 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#3 (permalink)  

أشكرك mr_m .. و لكن الموضوع الذي وضعته لا يمت بصلة الي مشكلتي
المشكلة باختصار انه لدي ملف .php و فيه مجموعة متغيرات . الان انا من خلال ملف php اخر قمت بالكتابة في ملف ال php هذا من اجل تعيين قيم **لبعض من ** المتغيرات هذه و ليس ** كلها ** . قمت طبعاً بذلك باستخدام دوال fopen و fwrite .. المشكلة التي تقابلني الان انه عند عملي لذلك فتقوم بمسح كل الملف و تعيين القيم و للفاريبلز المحدده فقط . و بالتالي مسحت أي فاريبلز أخري موجوده بالملف لم أعين لها قيم .
الحل الذي ابحث عنه و أريد هو كيف أتفادي هذه المشكله و أكتب بالملف عادي دون ان تمسح اي سطور أخري من الملف

و لو أمكن أريد توضيح عن دالة serialize التي ذكرتها بالرابط الذي وضعته






__________________
PHP Coder -- I Love PHP
ArabsProject غير متواجد حالياً   قديم 17-05-2008, 06:36 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#4 (permalink)  

هناك نوعين من ال caching ممكن تستفيد منهم و هما كالتالي:

- القيم التي تجلبها من خلال البحث في قاعدة البيانات أو من أي مكان آخر ، و هذه يفضل تخزينها منفصلة تماما عن الكود الأساسي..

- الكود الذي قمت ببرمجته، حيث يقوم ال optimizer بالاحتفاظ بنسخة من ال intermediate-code الخاص بتلك الصفحة.
و يقوم الoptimizer بعمل caching لأكبر جزء من الكود لم يتم تغييره منذ فترة- سواء كان ملف كامل أو class أو دالة.
لذلك يجب أن تبقي الملفات التي تحتوي على أكواد ال PHP بدون تغيير يذكر. حتى تستفيد من ميزة الcode caching


و هذا هو ما حاولت ألمح له في ردي السابق عن طريق تخزين المتغيرات منفصلة.






mr_m غير متواجد حالياً   قديم 17-05-2008, 07:20 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#5 (permalink)  

نعم كلام سليم . طيب في حالة النوع الأولي الذي أشرت أنت له و هو تخزينها من خلال جلبها من قاعدة البيانات منفصلة تماما عن الكود الأساسي . كيف أستطيع عملها ؟






__________________
PHP Coder -- I Love PHP
ArabsProject غير متواجد حالياً   قديم 17-05-2008, 07:31 PM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Jan 2008-
#6 (permalink)  

عذرا على التأخر..

مثال لتخزين نتيجة استعلام
كود PHP:
function save_data($data,$file='cache.m'){
    
$fp fopen($file,'w');
    
fwrite($fp,serialize($data));
    
fclose($fp);
}  

# put ur query result into an array
for($i=0;$row=mysql_fetch_array($result);$i++) $rows[$i] = $row;
# saving it to cache.m - you may choose any name with any extension
save_data($rows); 
مثال لاستخراج نتيجة الاستعلام مرة أخرى
كود PHP:
function get_data($file='cache.m'){
    if(
file_exists($file)){
        return 
unserialize(implode('',file($file)));
    }else{
        return 
false;
    }
}  

# retrieving our array
$rows get_data(); 
و يكون الناتج هو نفس المصفوفة التي قمت بتخزينها.

كود PHP:
if(is_array($rows)){
    foreach(
$rows as $row){
        
# continue ur work
    
}

-> اذا أردت جلب البيانات المخزنة في الملف قبل الحفظ.. فما عليك الا أن تستخدم get_data و مقارنة القيمة المحفوظة بالقيمة المستخرجة من قاعدة البيانات، أو التعديل عليها ثم الحفظ مرة أخرى.

-> و بهذا ستكون سجلت البيانات في ملف منفصل، و استفدت أيضا من ال dynamic code caching

-> للعلم .. يوجد للserializing فوائد كثيرة جدا ، لذلك يجب القراءة في طرق الاستفادة منها
PHP: serialize - Manual
PHP: unserialize - Manual






mr_m غير متواجد حالياً   قديم 18-05-2008, 12:38 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#7 (permalink)  

أشكرك أخي mr_m علي الإفادة الرائعة . قمت بالتفكير و استخدم طريقه أخري باستخدام ال fopen و fread و write و نجحت معي . الفكره أني قرأت محتويات الملف الأول و من ثم عدلت اللي أبيه و من ثم أعدت الكتابة الي الملف بعد التعديل علي الأشياء التي أريدها .. لكن هناك مشكلة بسيطه قابلتني . و هو عند الكتابة الي الملف مره أخري تقوم بالاضافة بنهاية الصفحه مع ترك المحتويات القديمه للملف . كمثال للتوضيح :
هذا الملف قبل الكتابه له
كود PHP:
<?php
$a
=1;
$b=2;
?>
بعد الكتابة الي الملف يضيفه مره أخري هكذا :
كود PHP:
<?php
$a
=1;
$b=2;
?>

<?php
$a
=5;
$b=6;
?>
أي لا يقوم بمحو المحتوي القديم و من ثم اضافة المحتوي الجديد . علماً اني استخدم ب fopen الأوبشن r+
فما هو الحل أو الخيار من اجل عند الكتابه مره اخري الي الملف محو المحتويات القديمه أولاً بالملف قبل كتابة المحتويات الجديده ؟






__________________
PHP Coder -- I Love PHP
ArabsProject غير متواجد حالياً   قديم 18-05-2008, 02:25 AM
رد مع اقتباس
عضو نشيط
تاريخ التسجيل: Sep 2006-
#8 (permalink)  

أشكركم أخواني انتهيت الحمد لله من حلها . قمت بعمل الأول close للملف بعد استخدام fopen مره لقراءته . و من ثم استخدمتها مره اخري لكن من اجل الكتابة فقط w و اعدت الكتابة للملف . و ظبط الحمد لله






__________________
PHP Coder -- I Love PHP
ArabsProject غير متواجد حالياً   قديم 18-05-2008, 02:39 AM
رد مع اقتباس
رد


 

أدوات الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
ملحوظات مفيده لبرمجه قويه بأستخدام الــ PHP و الــ Mysql Brmaga PHP 16 07-02-2006 01:50 AM
اربعمائة وخمسين ميجا شرح php بالفيديو نبراس اليماني PHP 3 19-07-2005 04:32 PM
35 ملف عبارة عن بريمجات متنوعة ..!! ابومنار تطوير الويب 23 01-03-2005 09:59 PM
أفضل محرر php أنصح به PHP Designer 2005 v2.2.8 Hossam AL-Abdeh PHP 10 31-01-2005 04:22 PM
طلب للأفاضل تصميم واجهة استعلام لبرنامج abomosab تطوير الويب 29 28-01-2004 03:51 PM


الساعة الآن: 10:58 AM بتوقيت المملكة العربية السعودية