לא מצליח לקבל תשובה מסרבר

rozeyoter

New member
לא מצליח לקבל תשובה מסרבר

שלום לכולם (וגם לתמר:)). מצאתי קוד נחמד שמתקשר לשרת ומקבל תשובה שהשרת נותן. ניסיתי אותו והסקריפט "נתקע". אני יודע שהתשובה מתקבלת, אבל לדעתי הפונקציה FREAD מצפה לסמן של "סוף קובץ" או משהו כזה. וכתוצאה מכך כל העסק נתקע. אני עובד על חלונות. מישהו מכיר את הבעיה ואת הפתרון לה? בתודה. הנה הקוד: =============== Class whois { function lookup($lookup){ $whois = "whois.geektools.com"; $fp = fsockopen($whois, 43, &$errno, &$errstr, 30); if (!$fp){ printf("Error: %s (%s)", $errstr, $errno); $data = 0; } else { $lookup .= "\n"; fputs($fp, $lookup); $data = fread( $fp, 16384 ); fclose($fp); } return $data; } }
 

תמר,

New member
ניסיון ...

אף על פי שאין לי ניסיון עם הפונקציות האלו, אנסה לענות: יכול להיות שאתה קורא יותר בתים ממה שקיבלת (ולכן אתה עדיין מחכה). ההצעה שלי היא להשתמש ב-fgets, כך תקבל כל שורה בתורה, ותוכל להפסיק לקרוא מתי שתרצה. שים לב, שב-windows המחרוזות מסתיימות ברצף התוים סלש-r סלש-n. דרך אגב, עכשיו הסתכלתי שוב בתיעוד של fsockopen, ואכן אתה לא אמור להשתמש ב-fread אלא ב-fgets. אז אם אני הטעתי אותך - עמך הסליחה ...
ותודה שחשבתם עלי (Eyore)​
 
למעלה