שימושון php

המנהלים: שמואל, רדיופון, כותב מוסמך, חוקר, אאד

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

שימושון php

הודעהעל ידי 011371 » 07:00 22/01/2018

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

מומחים מוזמנים בזאת לתרום מזמנם ולהוסיף ערכים לשרשור זה

הרוצים לשאול ישאלו נא בנושא חדש ולא בתוך השרשור

Screenshot_2018-01-22-13-10-44-02.jpeg
הסמל של php, ויקיפדיה
Screenshot_2018-01-22-13-10-44-02.jpeg (20.5 KiB) נצפה 3006 פעמים


והתחלנו:
פתיח לקוד php

קוד: בחר הכל

<?php

סיומת לקוד php

קוד: בחר הכל

?>

מפריד בין פקודות

קוד: בחר הכל

;

משתנה

קוד: בחר הכל

$

פקודת הפֶּלֶט: הַדְפֶּס!

קוד: בחר הכל

print

GET - הקובץ מקבל נתונים מהעולם שבחוץ

קוד: בחר הכל

$_GET['ערך']

מתמטיקה בapi ←כולל הדגמה מפורטת איך לעשות שלוחת מחשבון api

קוד: בחר הכל

+ - * /

משפטי תנאי בשפת php ←המשך מחשבון api

קוד: בחר הכל

if(תנאי)
 {פקודה; }
else {פקודה; }
//סימנים לוגיים לשימוש בתנאים
== שווה ערך ל…
< קטן מ…
> גדול מ…
! שונה מ...
=== שווה בדיוק לתוים
נערך לאחרונה על ידי 011371 ב 11:22 29/01/2018, נערך 15 פעמים בסך הכל.

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

פתיח לקוד php

הודעהעל ידי 011371 » 07:06 22/01/2018

קוד: בחר הכל

 <?php


כל קוד php תקני חייב להתחיל בסימון זה
סימון זה "מסביר" למעבד של המחשב שלפניו הוראות בשפת php
וכך המעבד "יודע" להשתמש בתוכנת הphp המותקנת במחשב כדי לפענח את משמעות הקוד ולבצע את הפעולות המופיעות בו

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

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

סיומת לקוד php

הודעהעל ידי 011371 » 07:12 22/01/2018

קוד: בחר הכל

?>


זה אומר למעבד: סיימנו! אתה יכול קצת לנוח עד שנקרא לך שוב…

הקוד php יעבוד גם אם לא נציין את הסיומת ובכל זאת נוהגים לציינו למנוע בלבולים

★במקרה של קוד php המשולב בתוך קובץ המכיל קודים נוספים דוגמת html הסיומת עלולה להיות קריטית לפעולתו התקינה של הקובץ!

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

מפריד בין פקודות

הודעהעל ידי 011371 » 07:16 22/01/2018

קוד: בחר הכל

;


"נקודה פסיק"

זה השם של התו הקריטי ביותר בשפה

יצרתם קוד, אבל משהו לא עובד?
דבר ראשון תחפשו איפה שכחתם לשים ;

חובה לסגור כל פקודה בסימן הזה , אחרת זה פשוט לא יעבוד!

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

משתנה

הודעהעל ידי 011371 » 07:22 22/01/2018

קוד: בחר הכל

$


הסמל של הדולר נבחר להיות הסמל של לב ליבה של שפת php המשתנה

מה זה משתנה?

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

★להדגמה נציין כאן לקוד של חוקר המדגים איך אפשר לבנות קוד שיקריא את מספר המערכת אליה מחוברים

הנתון המשתנה בדוגמא הוא מספר המערכת , שחוקר בחר לציין אותו בתור

קוד: בחר הכל

$ApiDID

בתחילת הקובץ כתוב מה אומר המשתנה

קוד: בחר הכל

$ApiDID=הערך שהתקבל מהשלוחה במערכת שלכם*; 

(*במאמר הזהנלמד איך כותבים את זה בשפת php.. כרגע זה בעברית רק להדגמה)


ובהמשך הקוד ניתן לראות את המשתנה חוזר על עצמו כמה פעמים כאשר נותנים הוראות :תבדוק האם אכן יש כזה ערך וכו' עד שלבסוף המשתנה משולב בתשובה שמוחזרת לapi "מספר המערכת שאליה אתם מחוברים הוא $ApiDID"
←לתשומת ליבכם השם של המשתנה הוא עניין לטעמך האישי והקוד היה עובד מצוין אם היינו קוראים למשתנה בכל שם אחר כגון $aaa למשל ומחליפים כמובן את כל המקומות שבהם מופיע המשתנה לאותו שם, כמובן שרצוי לקרוא שמות המובנים וקשורים לפעולה אותה המשתנה מייצג כדי שלא תתבלבלו אח"כ
(אז איך קראתי לכתובת? ואיך לגיל?)

≈כמובן שבקובץ אחד יכול להיות יותר ממשתנה אחד עד אין סוף

לדוגמא אפשר להגדיר

קוד: בחר הכל

$c=$a*$b;

בשביל שהמעבד יכפיל את משתנה a במשתנה b ולתוצאה הוא יקרא בשם משתנה c
(הסימן* מציין פעולת כפל)
נערך לאחרונה על ידי 011371 ב 10:40 22/01/2018, נערך פעם 1 בסך הכל.

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

הַדְפֶּס! :פקודת הביצוע

הודעהעל ידי 011371 » 08:19 22/01/2018

קוד: בחר הכל

print


זוהי הפקודה שתאפשר לבני האדם לקרוא את המסקנה אליה הגיע php בחישוביו

פקודה זו "מדפיסה" את התשובה באותיות קריאות (אם לא הייתה לנו שגיאה בקידוד… ) ל"פֶּלֶט" בצורת קובץ html

כולם אוהבים להדגים כך

קוד: בחר הכל

<?php
print 'שלום, עולם';
?>
(הגֶרֶֹש ' שבתחילת וסוף המשפט מסמנים שמדובר ב"מחרוזת טקסט"
כך שרווח או סימן אחר לא יקטעו את הפקודה)


תיקחו את הקוד הזה, תשמרו בשם כלשהוא בסיומת php , תעלו לשרת שלכם , היכנסו מהדפדפן ומיד תיראו על המסך את המילים "שלום ,עולם"

להדגמה , שמרתי את הקובץ הנ"ל בשם helo.php בחינמון , והנה הקישור לצפייה בתוצאה:
https://011371php.000webhostapp.com/helo.php

אם ניקח את הדוגמא של פעולת הכפל מהמאמר הקודם בנושא "משתנה" נוכל כעת להוסיף פקודה

קוד: בחר הכל

print $c;

כדי שאנחנו נוכל לראות את התוצאה שלa×b כזכור

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

GET : קבלת משתנה באמצעות כתובת הURL

הודעהעל ידי 011371 » 09:14 22/01/2018

קוד: בחר הכל

$_GET['ערך']


פקודה זו אומרת למעבד: תקבל את 'ערך' מכתובת ה url שהזין המשתמש

הסבר:
עכשיו הגיע הזמן להסביר את הנקודה:
אז איך אני כלקוח מספק לקוד שבנית את הנתונים המשתנים הדרושים לו כדי לענות לי את התשובה?

יש כמה דרכים וכרגע נעסוק ב GET מפני שהיא הצורה השימושית ששלוחת הapi שולחת לקובץ שלנו(עריכה: כמה שעות אחר כתיבת מאמר זה התבשרנו שאפשר לשלוח ערכים גם ב POST, על כך בהמשך… )

צורת השליחה עובדת כך
נניח ויש לנו כתובת של הקובץ print.php
הקובץ מכיל את הקוד הבא

קוד: בחר הכל

<?php
$dugma=$_GET['PRINT'];
print $dugma;
?>
הקובץ בעצם אמור להדפיס את הערך 'PRINT' שאני ישלח אליו

איך אני שולח לו את הערך?
נניח והכתובת המלאה שלו היא: https://011371php.000webhostapp.com/print.php
כל שעלי לעשות הוא להוסיף לכתובת את הסימן ? ואחרי זה את שם הערך = מה שאני רוצה שיודפס
לדוגמא אם אני רוצה שידפיס לי את המלה "שלום" צריך להוסיף לכתובת את המחרוזת הבאה

קוד: בחר הכל

?PRINT=שלום

סך הכל תראה כך כתובת הurl שתדפיס את המילה 'שלום'
https://011371php.000webhostapp.com/print.php?PRINT=שלום

אתם יכולים לשחק עם הכתובת כאוות נפשכם , כל מילה שתכתבו אחרי סימן ה = תופיע על המסך

ואם יש לי שתי משתנים או יותר שאני צריך לשלוח?
אין פשוט מכך: בין ערך לערך מוסיפים את הסימן "&"

כך שאם לדוגמא בקובץ הקודם הוספתי פקודות:

קוד: בחר הכל

<?php
$dugma=$_GET['PRINT'];
$od=$_GET['PRINT2'];
print $dugma;
print " ";
print $od;
?>

(השורה שבין שתי המשתנים מדפיסה "רווח" כי אחרת המילים יצאו צמודות)


אז אני צריך להוסיף לurl

קוד: בחר הכל

?PRINT=שלום&PRINT2=לידידי

סך הכל תראה כך כתובת הurl שתדפיס את המילים 'שלום' 'לידידי'
https://011371php.000webhostapp.com/print.php?PRINT=שלום&PRINT2=לידידי

ושוב, אתם יכולים לשחק עם הכתובת כאוות נפשכם

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

מתמטיקה ב php

הודעהעל ידי 011371 » 13:34 24/01/2018

להלן הסימנים המשמשים לפעולות מתמטיות

קוד: בחר הכל

+  חיבור
-  חיסור
*  כפל
/ חילוק


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

אז מה דעתכם שנדגים את זה על מחשבון api ?

אז התחלנו:
ניקח לדוגמא קובץ בשם plus.php
תוכן הקובץ:

קוד: בחר הכל

<?php

$a=$_GET['a'];
$b=$_GET['b'];

$c=$a+$b;

print "id_list_message=t-התוצאה היא.n- $c:";
?>

מה אנחנו רואים פה ?
שורה הראשונה היא הפתיח
אח"כ שתי שורות שמציבות את הקלט של הערכים 'a' ו 'b' שהשלוחה תשלח לנו בתוך משתנים בשם $a ו $b בהתאמה (בהמשך תראו מה צריך לכתוב בשלוחה כדי שהיא אכן תשלח )
אח"כ שורה שאומרת משתנה $c הוא משתנה $a ועוד משתנה $b
ולבסוף פקודה "הדפס: " את התשובה שהשלוחה תקבל , אנחנו כמובן צריכים להדפיס את התשובה בפורמט שהשלוחה תבין מה היא צריכה לעשות לפי האפשרויות שימות המשיח נתנו לנו בהסבר על המודול
במקרה שלנו אנו נותנים הוראה להדפיס את המשפט הבא

קוד: בחר הכל

id_list_message=

שזה אומר בשפת ימות המשיח: הודעה אישית ללקוח המורכבת מהפרמטרים הבאים

קוד: בחר הכל

t-התוצאה היא.
:n-$c.
(כאשר בתור $c
תודפס התוצאה של התרגיל)

שזה אומר לשלוחה : להקריא בצורת טקסט את המילים "התוצאה היא"
ובצורת מספר את התוצאה (המסומנת ב $c)

עכשיו אם לדוגמא נשלח סטרינג אם הערכים

קוד: בחר הכל

?a=100&b=200

התוצאה שהקובץ תדפיס תהיה

קוד: בחר הכל

id_list_message=t-התוצאה היא.n- 300:


להדגמה צפו בקישור הבא:
http://011371php.dx.am/plus.php?a=100&b=200
תוכלו לשחק אם הערכים a ו b כרצונכם

אם תשלחו את זה דרך שלוחת api
מה שתשמעו יהיה פשוט
"התוצאה היא 300"

ועכשיו נסביר מה צריך לעשות בשלוחה כדי שהיא תשלח לנו את הערכים שנקיש

בקובץ הexr.ini נגדיר

קוד: בחר הכל

type=api
api_link=http://011371php.dx.am/plus.php

api_000=a,no,,1,7,Number,yes
api_001=b,no,,1,7,Number,yes

api_phone_send=no
api_did_send=no
api_extension_send=no
api_enter_id_send=no
api_enter_id_name_send=no
api_hangup_send=no


בנוסף צריך להשים בשלוחה 2 קבצי שמע או tts
בשמות 000 , 001
כאשר תוכנם הוא "נא להקיש את המספר הראשון וסולמית לסיום" ו "נא להקיש את המספר השני וסולמית לסיום"

הסבר על מה שהולך ב ext.ini
שורה ראשונה זה סוג השלוחה= api
שורה שניה זה הלינק המסתיים בשם הקובץ (מי שרוצה יכול להשתמש בלינק המופיע בדוגמא)
שורה שלישית זה הוראות לשלוחה כיצד להתנהג עם הקובץ 000 ששמנו בשלוחה כאשר בין הוראה להוראה יש פסיק
ומופיע בו כך:

a >כלומר אנו רוצים לקבל כאן ערך בשם 'a'
>הערך הזה ריק , פה ניתן להגביל את סך המספרים להקשה
1 >כלומר מינימום ספרה אחת צריך להקיש
7 >שניות המתנה אם לא הוקש # או כלום
Number >כלומר שהמערכת תחזור על מה שהלקוח הקיש בצורת מספר ( למשל , שאם הקיש 100 שהמערכת תקריא לו "מאה" ולא "אחת אפס אפס") אם רוצים לקצר את התהליך אפשר לכתוב "No" כדי שהמערכת תתקדם ישר לשלב הבא (001) בלי לחזור על מה שהלקוח הקיש
yes >חוסם את מקש * כדי שלא נקבל ערכים שגויים כשמישהו יקיש *

השורה הבאה היא כמו השורה הקודמת עבור קובץ 001 , רק שכאן הערך הוא b

השורות הבאות אינם חיוניות לפעולת המערכת ותפקידם הוא לבטל את הערכים האוטומטיים שימות שולחת בסטרינג כברירת מחדל
מפני שהמחשבון שלנו לא זקוק לערכים האלו הגדרנו לבטלם כדי למנוע צריכת נתונים מיותרת
נערך לאחרונה על ידי 011371 ב 12:43 29/01/2018, נערך פעם 1 בסך הכל.

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

המשך מחשבון api : כפל וחיסור

הודעהעל ידי 011371 » 01:57 25/01/2018

נמשיך בהסבר על המחשבון:
ועכשיו :
כיצד לעשות כפל
אז נניח שהקובץ שלי שמו double.php

תוכנו זהה לקובץ plus.php מהמאמר הקודם רק שעכשיו במקום הסימן + שסימן חיבור נכתוב את הסימן* שמציין כפל
וכך זה יראה

קוד: בחר הכל

<?php

$a=$_GET['a'];
$b=$_GET['b'];

$c=$a*$b;

print "id_list_message=t-התוצאה היא.n- $c:";
?>


להדגמה כיצד הקובץ יענה על השאלה : כמה זה 5×3 צפו בקישור הבא:
http://011371php.dx.am/double.php?a=3&b=5
שחקו אם הערכים a , b כאוות נפשכם ותראו את התוצאות.

כדי לתקשר עם הקובץ דרך ה api יש להשים בשלוחה את אותם הגדרות שרשמנו במאמר הקודם על חיבור (למעט סיומת הלינק שצריך לשנות לשם הקובץ הנוכחי double.php )

נמשיך לשלב הבא

כיצד לעשות חיסור

אז כמובן תוכן הקובץ הוא אותו תוכן חוץ מסימן ה* שהפעם נחליף ל -
כצפוי קראתי לקובץ בשם minus.php ולהדגמה כיצד הקובץ עושה 25-7 הקליקו על הקישור:
http://011371php.dx.am/minus.php?a=25&b=7
כאשר שוב תוכלו לשחק כאוות נפשכם אם הערכים a,b
קובץ הext.ini בשלוחה ללא שינוי מלבד שם הקובץ כנ"ל


עכשיו נציג בעיה קטנה;
מה יקרה אם התוצאה תהיה שלילית
לדוגמא משתמש חכמולוג בשלוחה יהיה דחוף לו לדעת כמה זה 9-50 התוצאה היא כמובן ,מינוס 41
בוא נראה איך הקובץ יענה על זה
http://011371php.dx.am/minus.php?a=9&b=50
אז בדפדפן זה נראה לא רע , רואים ברור את הסימן - ליד המספר , אז יודעים שזה מינוס
כמו זה

קוד: בחר הכל

id_list_message=t-התוצאה היא.n- -41:

אבל בשלוחה במערכת משום מה זה לא ילך…
ולמה?
כי ימות המשיח כתבו אזהרה לגבי האפשרויות של id_list_message שהיות והסימנים "." "-" (נקודה ומקף אמצעי ) משמשים כמפרידים בין פקודה לפקודה ובין הפקודה לטקסט אסור להשתמש בהם בגוף הטקסט וזה יגרום לתקיעת המערכת,
אי לכך הסימן " - " שבא לציין את המינוס יגרום לנו רק לבאג!
מה הפתרון? במאמר הבא אי"ה

011371
הודעות: 999
הצטרף: 23:33 07/12/2017

משפטי תנאי בשפת php

הודעהעל ידי 011371 » 11:09 29/01/2018

ככה נראה תנאי:

קוד: בחר הכל

if ( "תנאי" )
{תעשה כך וכך; }
else
{ואם לא אז תעשה כך}

כמו שניתן לראות "if" פותח את המשפט [תרגום מילולי לעברית= "אם"]
בתוך הסוגריים העגולות נכתוב את התנאי
ובתוך הסוגריים המסולסלות את הפקודה/פקודות לביצוע
אחרי זה (לא חובה) ניתן לכתוב את המילה "else" [תרגום= "אחרת"] ושוב פקודה/פקודות בתוך סוגריים מסולסלות
סימנים לוגיים לשימוש בתנאים:

קוד: בחר הכל

== שווה ערך ל…
< קטן מ…
> גדול מ…
! שונה מ...
=== שווה בדיוק לתוים


הכי טוב להסביר עם דוגמא
זוכרים את הבעיה אם המחשבון מינוס מהשיעור הקודם ?
<דיברנו שם כזכור על ניסיון להפחית מ 9 50 כשהתוצאה היא מינוס 41 ,אבל הסימן "-" תוקע את השלוחה>
בא נפתור את הבעיה באמצעות שימוש בתנאי;
אז לקובץ שלנו קוראים הפעם minusa.php
ותוכנו כדלהלן

קוד: בחר הכל

<?php
$a=$_GET['a'];
$b=$_GET['b'];

$c=$a-$b;

if  ($c<0)
{$d= 0-$c;
print "id_list_message=t-התוצאה היא מינוס.n- $d:";
}
else
{
print "id_list_message=t-התוצאה היא.n- $c:";
}
?>

אז ההתחלה היא בעצם אותו דבר כמו אז:
a,b מתקבלים מהשלוחה, c זה התוצאה של a-b ,
עכשיו הוספנו תנאי :
אם ($c קטן מ 0 כלומר: הוא מינוס) {אז דבר ראשון נהפוך אותו למספר חיובי ע"י התרגיל d=0-c זה כלל ידוע במתמטיקה שמינוס פחות מינוס שווה פלוס , <בדוגמא שלנו 0 פחות מינוס 41 =
41>
;
אחרי זה ניתן הוראה להדפיס את המשפט
"id_list_message=t-התוצאה היא מינוס.n- $d:";
שפשוט מכיל בתוכו את המילה "מינוס" לפני המספר הרגיל שהתקבל ב d כך שהתוצאה תהיה אמינה ומדויקת}
עכשיו הוספנו "else" כלומר אם התנאי לא מתקיים דהיינו ש c שווה לאפס או גדול ממנו {אז תדפיס כרגיל
"id_list_message=t-התוצאה היא.n- $c:";
}
ניתן לצפות בקישור הבא איך הקובץ יגיב לתרגיל רגיל של 35-17
http://011371php.dx.am/minusa.php?a=35&b=17
ובקישור הבא כיצד הוא יתנהג בתרגיל שהתוצאה היא מינוס 23-79
http://011371php.dx.am/minusa.php?a=23&b=79
תוכלו לשחק אם הקישור כאוות נפשכם

לשימוש עם הסקריפט בשלוחה ראו במאמר הקודם זה אותם הגדרות למעט שם הקובץ בסוף הלינק minusa.php


חזור אל “פורום מפתחים API”

מי מחובר

משתמשים הגולשים בפורום זה: Google [Bot] ו־ 3 אורחים