הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 08-12-09, 14:12   # 1
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

[פונקציות] אחסון מערך רב מימדי בDATABASE

שלום לכם,
לא פעם ולא פעמיים נתקלתי במקרים (שלי או של אחרים) שהיה צורך להשתמש במערך רב מימדי, אך היה צורך גם לאחסן את כל הנתונים בDATABASE.
עכשיו ראיתי מישהו באיזה פורום שצריך משהו כזה, אז החלטתי לכתוב פשוט דרך לעשות את זה.

מה שעשיתי זה לקחתי את המערך והפכתי אותו לSTRING, שמופרד על ידי תווים שלא כל כך בשימוש (התווים הראשונים בASCII TABLE).
יצא קצת מורכב גם לי:
PHP קוד:
function to_dbdata($var,$varname='dbdata',$level=1)
{
    
$new_string $varname.chr(1);
    
    if(
is_array($var))
    {
        
$new_string .= chr($level+2);
        foreach(
$var as $key=>$value)
        {
            
$new_string .= to_dbdata($value,$key,$level+1);
        }
        
$new_string .= chr($level+3);
    }
    elseif(
is_string($var))
        
$new_string .= $var;
    
    
$new_string .= chr(2);
    return 
$new_string;
}

function 
from_dbdata($dbdata,$level=1)
{
    
preg_match_all('#([a-zA-Z0-9_]+)'.chr(1).chr($level+2).'(.*)'.chr($level+3).chr(2).'#Us',$dbdata,$match1);
    
    for(
$i=0;$i<count($match1[1]);$i++)
    {
        
$dbdata str_replace($match1[0][$i],'',$dbdata);
        
$new_data[$match1[1][$i]] = from_dbdata($match1[2][$i],$level+1);
    }
    
    
preg_match_all('#([a-zA-Z0-9_]+)'.chr(1).chr($level+2).'{0}(.*)'.chr($level+3).'{0}'.chr(2).'#Us',$dbdata,$match2);
    for(
$i=0;$i<count($match2[1]);$i++)
    {
        
$new_data[$match2[1][$i]] = $match2[2][$i];
    }
    
    return 
$new_data;

דוגמה לשימוש:
קוד:
PHP קוד:
$cool_array = array("hey"=>"there",array("yes","no"=>"sir"),"what is up");
print_r(from_dbdata(to_dbdata($cool_array,'cool_array'))); 
פלט:
PHP קוד:
Array
(
    [
cool_array] => Array
        (
            [
0] => Array
                (
                    [
0] => yes
                    
[no] => sir
                
)

            [
hey] => there
            
[1] => what is up
        
)


אשמח לשמוע מה דעתכם על הפונקצייה המכוערת שלי.
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
ישן 08-12-09, 14:53   # 2
intercooler3819
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,056

intercooler3819 לא מחובר  

ואלה סיבכת
בשביל מה יש JSON_ENCODE? גם לאובייקטים [=
__________________
  Reply With Quote
ישן 08-12-09, 15:37   # 3
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

serialize ו-unserialize ופשוט להכניס למסד
__________________
  Reply With Quote
ישן 09-12-09, 11:08   # 4
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

ציטוט:
נכתב במקור על ידי WiPi צפה בהודעה
serialize ו-unserialize ופשוט להכניס למסד
....
  Reply With Quote
ישן 09-12-09, 14:44   # 5
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

צודקים, אכן פשוט לא הכרתי את הפונקציות האלו. לא יצא לי עוד לעקוף את הבעיה הזאת בדרך הזאת.
שמח שלמדתי משהו חדש =]
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
ישן 09-12-09, 18:55   # 6
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

serialize
var_export
json

יש מלא אפשרויות.. חבל על המאמץ..
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 08:37.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ