ערכתי לאחרונה בתאריך 29.03.07 בשעה 12:41 בברכה, Kent Net
הרבה שאלו אותי ורצו לדעת איך בנוייה החתימה של מד הפז"ם, זה לא יותר מדי מסובך ולמעשה די פשוט.
http://www.zendurl.com//sampsig.jpgאת הקוד כתבתי ב PHP , בנוסף צריך לדעת לעבוד בצורה בסיסית עם ספריית GD.
(פרטים נוספים : http://www.php.net/gd)
כהתחלה שולחים אל הדף 2 משתנים בסיסיים, תאריך התחלה וסיום (לצורך העניין end, start).
בוא נצא מתוך נקודת הנחה שהמשתמש הכניס את המשתנים הבאים:
$start=29/11/2005
$end=29/11/2008
בתור התחלה נרצה לבדוק את הפרשי התאריכים על מנת להשתמש בנתונים אלה מאוחר יותר.
יש מספר אופציות לעשות את זה, אני עשיתי זאת בדרך הבאה:
השתמשתי בפונקציה EXPLODE כדי להפריד את הימים, החודשים והשנים לתוך מערך (הפרדה של המשתנים לפי התו "/" מתוך המשתנה הנקלט).
לדוגמא:
$expolded_end= explode("/", $end);
|
המערך expolded_end יהיה מורכב מ 3 משתנים:
$expolded_end[0] /ימים $expolded_end[1] /חודשים $expolded_end[2] /שנים
|
מומלץ בשלב זה לבצע בדיקה של כל אחד ממשתנים אלה על מנת לבדוק תקינות (לדוגמא - חודשים לא יכול להיות גדול מ 12 וקטן מ0 וכו).
יצטרכו לעמדו לרשותינו 2 מערכים כאלו,אחד לתאריך ההתחלתי ואחד לסופי.
כעת בעזרת mktime נהפוך את 2 המערכים ל 2 תאריכים בפורמט UNIX.
דוגמא לעבודה עם הפונקציה mktime:
<?php echo mktime(0, 0, 0, 9, 15, 98); ?>
|
יחזיר לנו :
זהו אותו התאריך בפורמט יוניקס, כדי להחזיר אותו חזרה למצב רגיל נשתמש בפונקציה DATE:
echo date("M-d-Y", mktime(0, 0, 0, 9, 15, 98));
|
והתוצאה תהיה:
נשתמש בפונקציה MKTIME ביחד הנתונים מהמערכים שיצרנו על מנת לתרגם את 2 התאריכים הנקלטים לתאריכים בפורמט UNIX.
כעת נכניס לתוך משתנה NOW את היום הנוכחי:
כעת לרשותינו 3 משתנים, התאריך ההתחלתי התאריך הסופי והתאריך הנוכחי.
כל מה שנותר לעשות עכשיו זה לשחק עם אותם משתנים כדי לקבל את התוצאות הרצויות.
לדוגמא, על מנת לקבל את מספר הימים שנותרו מהיום עד התאריך הסופי נבצע:
(!! יש לזכור לחלק את התוצאה הסופית ב86400 על מנת לקבל נתון הגיוני).
בנוסף החלק המרכזי והעיקרי של הקוד הוא חישוב הזמן שעבר והצגתו באחוזים.
בכדי לעשות זאת נצטרך לחשב את:
-מס' הימים שעברו מהתאריך ההתחלתי לנוכחי.
$passed=floor(($now-$start)/86400);
|
-מס'הימים בין התאריך ההתחלתי לסופי.
$sum=($end-$start)/86400;
|
כעת כל מה שנותר לנו לעשות הוא לחלק את הנתון הראשון מהשני .
לצורך העניין $passed חלקי $sum.
קיבלנו את התוצאה הסופית באחוזים. ניתן להשתמש ב SUBSTR כדי לנקות "מספרים מיותרים" מהתוצאה הסופית.
http://www.php.net/manual/he/function.substr.php
זהו זה,
כעת כל הנתונים הדרושים בהישג יד וכל מה שנותר לעשות זה משחקי גרפיקה ו GD.
אני לא הולך להסביר כאן כיצד משתמשים בספרייה GD,
אתן תיאור קצר כיצד השתמשתי בפונקציות שלה כדי לבנות את הבאר ה"דינמי" בחתימה.
ניצור תמונה שאורכה יהיה 100 פיקסלים.
בעזרת ImageRectangle ניצור מלבן ריק עם מסגרת פשוטה שאורכו יהיה כאורך התמונה (100 פיקסלים).
כעת נשתמש בImageFilledRectangle כדי "למלא" על אותו המלבן "צבע" שיראה לנו כמה אחוזים כבר עברו.
אורכו של המלבן החדש יהיה מס' האחוזים שכבר חישבנו כאן במדריך למעלה.
*יש לזכור שאורך המלבן התחתון והעליון צריכים להיות ביחס שווה.
אם אורך המלבן השקוף יהיה 300 פיקסלים, כל פיקסל (למעשה כל אחוז)מהמלבן הצבעוני יגדל פי 3. (מכיוון ש100% כעת גדל לנו ל 300%, 10% יהיה 30% וכו.)
זהו זה,
תהנו חבר'ה, אם יש שאלות אני מבטיח לענות כמה שיותר מהר למרות שאני רוב הימים לא בבית.
תזכרו , עשיתי את החתימה והמדריך רק בשבילכם והשקעתי הרבה מזמני, שמרו על זכויות.
אגב אם מישהו יוכל קצת להרחיב על AJAX, עם מדריכים וכו זה יהיה אחלה.