הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   תמונות רנדומליות בדף אחד (https://hosts.co.il/forums/showthread.php?t=21511)

Alter 09-05-06 23:07

אממ מבחינתי הגעתי לפיתרון..
PHP קוד:

$file_names[]="icon1.jpg";
$file_names[]="icon2.jpg";
$file_names[]="icon3.jpg";
$file_names[]="icon4.jpg";
$file_names[]="icon5.jpg";
$file_names[]="icon6.jpg";
$file_names[]="icon7.jpg";
$file_names[]="icon8.jpg";
$file_names[]="icon9.jpg";
$file_names[]="icon10.jpg";
$file_names[]="icon11.jpg";
$file_names[]="icon12.jpg"
            
$random_image=array_rand($file_names);
            echo 
"<img src='images/icons/" $file_names[$random_image] . "' border='0' width='24' height='24' />\n";
            unset(
$file_names[$random_image]); 

את השלוש שורות האחרונות הצבתי בכל מקום שאני צריך באתר.
עובד מצויין ובלי פאשלות.
תודה לכל מי שעזר!

RS324 09-05-06 23:11

שילבתי בתוך בדיקות של תקינות וכל מיני שטויות
גם טיפלתי במקרה שהמערך נגמר (הוא פשוט לוקח בחזרה את התמונות שהם DEAFULT
)

בכל מקרה שמתי גם הערות בקוד אז תנסה....


* לא ניסיתי את הקוד *
אני לא חושב שיש דרך יותר טובה לעשות את זה

תהנה

PHP קוד:

function fetch_image_array()
{
    
$file_names[]="icon1.jpg";
    
$file_names[]="icon2.jpg";
    
$file_names[]="icon3.jpg";
    
$file_names[]="icon4.jpg";
    
$file_names[]="icon5.jpg";
    
$file_names[]="icon6.jpg";
    
$file_names[]="icon7.jpg";
    
$file_names[]="icon8.jpg";
    
$file_names[]="icon9.jpg";
    
$file_names[]="icon10.jpg";
    
$file_names[]="icon11.jpg";
    
$file_names[]="icon12.jpg"
}

function 
getimage($array)
{
    
// next line checks if its not array or if array empty if so, get deafult images as array
    
if ((!is_array($array)) OR (sizeof($array) == 0))
    {
        
$array fetch_image_array();
    }
    
$random_image=array_rand($array);
     unset(
$array[$random_image]); 
     
     return array(
     
'myimage' =>$random_image,
     
'oldarray' =>$array
     
);
     
    
}
  
// get the orginal array  
  
$imagefiles =  fetch_image_array();
  
  
// you should do the next lines in for loop
  
  
$info getimage($imagefiles);
  
  
$myimage $info['myimage'];
  
  
$imagefiles $info['oldarray']; // get back the array without the image 


בניה 09-05-06 23:16

^^^
ב"ה


תהייה בעיה דומה לשלי ואפילו יותר קריטית, המערך מוגדר בתוך פונקציה ככה שהוא לא זמין למה שבחוץ.
לא נראה לי שבמקרה שלו צריך להסתבך כ"כ שישתמש בקוד של Atom-Bomb וזהו.

RS324 09-05-06 23:32

זה כי שחכתי להחזיר את המערך בתוך הפונקציה

לא אמורה להיות עם זה בעיה בכלל...

הנה הפונקציה המתוקנת

PHP קוד:

function fetch_image_array()
{
    
$file_names[]="icon1.jpg";
    
$file_names[]="icon2.jpg";
    
$file_names[]="icon3.jpg";
    
$file_names[]="icon4.jpg";
    
$file_names[]="icon5.jpg";
    
$file_names[]="icon6.jpg";
    
$file_names[]="icon7.jpg";
    
$file_names[]="icon8.jpg";
    
$file_names[]="icon9.jpg";
    
$file_names[]="icon10.jpg";
    
$file_names[]="icon11.jpg";
    
$file_names[]="icon12.jpg"
    
    return 
$file_names;


השורה :

// get the orginal array
$imagefiles = fetch_image_array();

מקבלת בחזרה את הזמינות של הקבצים.... כי הפונקציה פשוט מחזירה מערך מוגדר מראש שלא יכול להשתנות - מעיין מערך DEAFULT כזה

ואחרי זה הפונקציה השניה מחזירה את המערך לאחר שינוי
אם אתה שמת לב החזרתי את המערך שעבר שינוי לאותו משתנה שהפונקציה נקראה אליה בהתחלה...
תקרא טוב את הקוד...


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

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