-
@ass אמר בשגיאת Login.php כבר בשימוש:
אז אני מתזמן אותם כל קובץ לפי היום שלו.
אוקי, אז בכל קובץ יהיה include אחד בודד לקובץ של הפונקציות.
@ass אמר בשגיאת Login.php כבר בשימוש:
אבל אם נגיד הייתה בשרת תקלה של חיבור לאינטרנט וכו' אז בסופ"ש אני מריץ קובץ שבעצם מריץ גם את B וגם את C.
אז מה יקרה?
אני מקווה שאתה מבין השגיאה בביצוע include שני היא שגיאה ברמת התהליך php הנוכחי, כלומר אם בו זמנית רצים 2 תהליכי php נפרדים שעושים include לאותו הקובץ אין שום בעיה, אבל אתה לא יכול באותו תהליך ריצה לעשות פעמיים include לאותו הקובץ.
-
@שמואל4
קובץ A נראה כך.include 'C:\wamp64\www\my_php/Login.php'; // הגדרת שלוחה בימות $path = "ivr2:4/1"; // הגדרת שם תקייה $Program_name = "שלום"; // פתיחת קובץ ראשי include 'C:\wamp64\www\my_php/main.php';
וקובץ B נראה כך:
include 'C:\wamp64\www\my_php/Login.php'; // הגדרת שלוחה בימות $path = "ivr2:4/2"; // הגדרת שם תקייה $Program_name = "עולם"; // פתיחת קובץ ראשי include 'C:\wamp64\www\my_php/main.php';
ואז אני מריץ כל אחד בשעה שלו.
אבל אם אני רוצה להריץ את שניהם, אז יש לי קובץ אחד בשם Master שהוא מריץ את שניהם בצורה כזו:include 'C:\wamp64\www\my_php/A.php'; include 'C:\wamp64\www\my_php/B.php';
ובכל זאת מתקבלת שגיאה
-
@ass אמר בשגיאת Login.php כבר בשימוש:
אבל אם אני רוצה להריץ את שניהם, אז יש לי קובץ אחד בשם Master שהוא מריץ את שניהם בצורה כזו:
מה זה ההמצאה הזו? אתה רוצה להריץ שתי דברים באותו זמן לא מכניסים את שתיהם לאותו קובץ, זה שתי דברים נפרדים.
יכול להיות שכן אפשר לסדר זה יעבוד לך ככה, אבל זו לא הדרך האמיתית לעשות את הדברים.
הדרך הנכונה זה אם אתה רוצה להפעיל את כל הדברים יחד תפעיל 2 תהליכים של שתי הסקריפטים.
-
@yossiz אמר בשגיאת Login.php כבר בשימוש:
כי זה פשוט לא יעשה את ה include, והוא רוצה להשתמש עם include שבאמת יעשה את זה עובד פעם ויביא את כל הקוד של הקובץ פעם נוספת - שזה כמובן חיקוי עקום לשימוש עם פונקציות.
-
- הקובץ Login.php מתחבר לימות.
- הקובץ A ו B מגדירים את שם התקייה ושם הקובץ להעלאה, ואת הנתיב לשלוחה בימות (כלומר לכל קובץ (A או B) יש את הנתיב ושם התקייה שלו).
- קובץ main משתמש במשנים שהוגדרו ב A או B ומבצע העלאה לשלוחה.
- קובץ A רץ ע"י מתזמן משימות ביום א', וקובץ B ביום ב'.
- קובץ Master מריץ A ו B ביחד.
-
@ass ננסה טיפה לעזור יותר מעשי, בלי שום מחלקה - אני לא חושב שיש בה צורך.
קובץ פונקציות: (
functions.php
) :<?php $YMurls = array( "normal" => "https://www.call2all.co.il/ym/api/", "private" => "https://private.call2all.co.il/ym/api/" ); function YMapi($isPrivate, $ws, $parm) { global $YMurls; if ($isPrivate) { $YemotUrl = $YMurls['private']; } else { $YemotUrl = $YMurls['normal']; } $handle = curl_init(); curl_setopt_array( $handle, array( CURLOPT_URL => $YemotUrl . $ws, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $parm, CURLOPT_RETURNTRANSFER => true, ) ); $data = curl_exec($handle); $data = json_decode($data, true); curl_close($handle); return $data; } ?>
עכשיו בכל קובץ שקשור אנחנו מכניסים include פעם אחת של הקובץ פונקציות שלנו:
include 'C:\wamp64\www\my_php/functions.php';
עכשיו, למשל קובץ A.php צריך לקבל את שם הנושא הזה מהAPI של nodebb ולהכניס אותו לקובץ במערכת כTTS, אז הוא יראה ככה - כולל ה include:
<?php include 'C:\wamp64\www\my_php/functions.php'; // מביא קובץ פונקציות if (!function_exists('YMapi')) { throw new Exception("function YMapi Not exists, check include or file location"); } $getUrl = "https://tchumim.com/api/topic/11914/"; $tchumimGetTopic = json_decode(file_get_contents($getUrl), true); //משתנה tchumimGetTopic מכיל JSON מהפורום //העלאת הקובץ למערכת $token = "0777777:1234"; // טוקן $path = "/0/1010"; // לאן להעלות $NewFileName = "2"; // שם הקובץ $text = "שם הנושא המבוקש הוא :" . $tchumimGetTopic['title']; $ym = YMapi("normal", "UploadTextFile", [ "token" => $token, "what" => "ivr2:" . $path . "/" . $NewFileName . ".tts", "contents" => $text ]); if ($ym["responseStatus"] === "OK") { echo "הקובץ הועלה בהצלחה"; } else { echo "שגיאה בהעלאה, התשובה המלאה היא: " . json_encode($ym); } ?>
כנל בקבצים נוספים, על זה הדרך, כמובן זה הסבר בסיסי לדוגמא ספציפית, אני לא יכתוב בשבילך את הפרוייקט שלך, אבל לדעתי זו הדרך.
-