עזרה

ToMeRv322

New member
עזרה

טוב, אז לפני הכל אני אכתוב שאני כמעט וחסר ידע בPHP, מה שאני יודע זה ממה שקצת קראתי בספר ובאינטרנט, מהיגיון ומHTML שאני יודע..
מה שאני רוצה לעשות זה בעצם לקחת מידע מאתר שעובד רק באקספלורר (http://space.ort.org.il/@home/scripts/article_list.asp?sp_c=211384361&sp_sc=715185987), *
ולהציג אותו בדף פשוט שלי (הרעיון הוא שהמידע יתעדכן כל הזמן לפי האתר ההוא) בלי כל שאר האתר כדי שיעבוד בכל הדפדפנים (אני צריך מהאתר רק את המידע שכתוב בטבלה).
שאלתי מישהו שמבין והוא אמר לי לנסות עם http://php.net/manual/en/function.file-get-contents.php ו http://www.php.net/manual/en/ref.curl.php
אבל לא הצלחתי אפילו להציג את האתר בעזרתם, והוא אמר לי שכנראה שהאתר חוסם את זה ושבשביל לעשות את זה אני צריך ללמוד PHP ולא לנסות על רגל אחת..
עכשיו, אני יודע שהוא צודק, אבל ללמוד PHP יהיה לי זמן רק בחופש, וכרגע חשוב לי לעשות את הדבר הזה, אז כל מי שיכול לעזור לי או להסביר לי, אפילו בקצרה, אני אשמח :)


* אם ממש מעניין אותכם מה זה הדף הזה, אני אסביר - זה של בית הספר שלי, מודיעים שמה על מורים שלא מגיעים, כיתות שמשתחררות מוקדם וכו'
 

ToMeRv322

New member
אממ.. גם לי זה קרה, אין לי מושג למה, אבל..

אני אומנם לא יכול להבטיח לך שהאתר באמת בטוח, אבל http://www.alliance-telaviv.co.il/ זה האתר של בית הספר,
ודרך הכפתור בצד שמאל (שינויי מערכת) אתה מגיע לזה.. לא יודע מה להגיד לך :S
 

ToMeRv322

New member
אין הודעת שגיאה

ניסיתי את 2 הדרכים האלו (על אתרים אחרים זה עובד..)
1.

function myUrlEncode($string) {
$entities = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');
$replacements = array('!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
return str_replace($entities, $replacements, urlencode($string));

$Home = file_get_contents('http://space.ort.org.il/@home/scripts/article_list.asp?sp_c=211384361&sp_sc=715185987');
echo $Home;}


2.

// Create a curl handle
$ch = curl_init('http://www.alliance32.co.cc/');

// Execute
curl_exec($ch);

// Check if any error occured
if(!curl_errno($ch))
{
$info = curl_getinfo($ch);

echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
}

// Close handle
curl_close($ch);



פשוט העתקתי את הקוד שמצאתי באינטרנט בלי להסתבך יותר מדי..
הכתובת CO.CC זה פשוט קיצור שעשיתי לכתובת הארוכה לפני שגיליתי את הפונקציה של הURI, אני כמעט בטוח שניסיתי את הקוד השני גם עם הפונקציה והכתובת הרגילה וזה לא עבד..
העניין הוא שלדוגמה בקוד ה2 זה רושם גם כמה זמן לקח לדף להגיב, וגם בדף הזה זה מופיע, רק שהדף עצמו לא מופיע.
 

eyalbarazani

New member
הבנתי

אין כאן 'חסימה' מצד האתר :)
תסלח לי שאני מתעלם מהקוד שצירפת.
נסה


<?php
$html = file_get_contents('http://space.ort.org.il/@home/scripts/frame.asp?sp_c=211384361');
echo $html;
?>


זה אמור לשלוף את הhtml מהאתר ולהציג אותו, אבל אל תצפה שזה יעשה את העבודה.
בשביל זה תצטרך להבין איך האתר עובד ולאילו שורות להתייחס.
 

ToMeRv322

New member
זה בדיוק מה שעשיתי (קוד 1)

רק שהייתי חייב להוסיף את הURI כדי שזה יקרא את הכתובת כמו שצריך..
וזה לא עובד.
 

eyalbarazani

New member
זה לא בדיוק מה שעשית, הקוד שלך לא עובד

א. בגלל שזאת פונקציה שאף אחד לא קורא לה (אלא אם כן זה לא הקוד המלא)
ב. בגלל שיש return ורק אחריו מתבצע מה שאתה רוצה לעשות (מתבצעת יציאה מהפונקציה אחרי הצהרת return)

+ לכל הקוד שמעל הfile_get_contents אין משמעות כי אתה לא עושה בו שימוש בהמשך

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

ToMeRv322

New member
מה שכתבת בתגובה שלך

זה בדיוק מה שעשיתי.. העתקתי את הקוד הזה (מצאתי אותו באינטרנט), הדבקתי בקובץ PHP והפעלתי בעזרת WAMP..
רוב האתרים האחרים שניסיתי כן עבדו עם זה, האתר הזה לא.
וניסיתי בכמה דפדפנים כדי להיות בטוח, גם אקספלורר, כרום ופיירפוקס.
 
למעלה