שאלה ב PHP

פורום רשתות, IT ומחשוב כללי - רשתות, ראוטרים, מחשבים ניידים, אביזרים וכו'.
שלח תגובה
geblig פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1727
הצטרף: אוקטובר 2008
מיקום: חיפה
נתן תודות: 43 פעמים
קיבל תודות: 40 פעמים

שליחה #1 

הי,

אני מנסה לבצע grab לurl כלשהוא בכל מיני צורות וכל פעם מקבל בחזרה כלום.
למשל,
ניסיתי עם file_get_contents , הוא לא מחזיר לי כלום.
ניסיתי עם curl_exec , כנ"ל.

איך אני מוציא את ה source code של url ב PHP... ?

תודה מראש (f)
איציק

oferlaor
סמל אישי של משתמש
מנהל
מנהל
תגובות: 78907
הצטרף: נובמבר 2004
שם מלא: עפר לאור
מיקום: מודיעין, ישראל
נתן תודות: 789 פעמים
קיבל תודות: 5398 פעמים

שליחה #2 

שיטה פשוטה למדי:
[left]

קוד: בחירת הכל

$sGet= "http://www.ynet.co.il";
$rdf = parse_url($sGet);
$fp = @fsockopen($rdf['host'], 80, $errno, $errstr, 15);
if ($fp) {
	    fputs($fp, "GET " .  $rdf['path'] . $rdf['query']  . " HTTP/1.0\r\n");
	    fputs($fp, "HOST: " . $rdf['host'] . "\r\n\r\n");
	    $string	= "";
	    while(!feof($fp)) {
	    	$pagetext = fgets($fp,300);
	    	$string .= $pagetext;
	    }
	    fputs($fp,"Connection: close\r\n\r\n");
	    fclose($fp);
	
		if (stripos($string, "HTTP/1.0 200")==0) {
[/left]

TomerP
סמל אישי של משתמש
חבר פעיל מאוד
חבר פעיל מאוד
תגובות: 422
הצטרף: אוגוסט 2007
שם מלא: תומר
נתן תודות: 14 פעמים
קיבל תודות: 11 פעמים

שליחה #3 

geblig כתב:הי,

אני מנסה לבצע grab לurl כלשהוא בכל מיני צורות וכל פעם מקבל בחזרה כלום.
למשל,
ניסיתי עם file_get_contents , הוא לא מחזיר לי כלום.
ניסיתי עם curl_exec , כנ"ל.

איך אני מוציא את ה source code של url ב PHP... ?

תודה מראש (f)
...
תוודא שבקובץ ההגדרות של PHP יש אפשרות למשוך קישורים חיצוניים (אני לא זוכר כ"כ איך זה נקרא) - בד"כ זה חסום ואז file_get_contents ודומיו לא יעבדו (אני לא בטוח לגבי sockets, לדעתי גם נכללים בהגדרה הזו).

עריכה:
allow_url_fopen מוגדר ל true יאפשר לך גישה לכתובות חיצוניות.

בכ"מ, לפי קריאה, cURL אמור לעבוד גם בלי קשר. תבדוק שההרחבה שלו מותקנת ומוגדרת בהגדרות של PHP.
נערך לאחרונה על ידי TomerP ב 23/12/2010 15:51, נערך פעם 1 בסך הכל.

geblig פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1727
הצטרף: אוקטובר 2008
מיקום: חיפה
נתן תודות: 43 פעמים
קיבל תודות: 40 פעמים

שליחה #4 

תודה (Y)
עופר,
אני אנסה.. לא הכרתי את parse_url בכלל 8O

תומר,
בדקתי את המשתנה ב ini, הוא מוגדר כ true
ניסיתי לעבוד עם curl - לא עבד.. הוא משום מה לא מושך את תוכן ה url.
איציק

geblig פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1727
הצטרף: אוקטובר 2008
מיקום: חיפה
נתן תודות: 43 פעמים
קיבל תודות: 40 פעמים

שליחה #5 

עופר,

בדקתי וזה אכן עובד.. אבל עבור חלק מהדפים זה רושם שהוא לא מזהה host כזה. למשל::
http://www.sratim.co.il/browse.php?q=the+godfather

מצד שני,
עבור www.sratim.co.il למשל הוא מחזיר את התוכן.
איציק

oferlaor
סמל אישי של משתמש
מנהל
מנהל
תגובות: 78907
הצטרף: נובמבר 2004
שם מלא: עפר לאור
מיקום: מודיעין, ישראל
נתן תודות: 789 פעמים
קיבל תודות: 5398 פעמים

שליחה #6 

geblig

שים לב שזה BRUTE FORCE מה שעשיתי כאן, אין כאן אמולציה של דפדפן, עוגיות וכו'.

יתכן גם שמדובר בבעיה של TIMEOUT, תשחק עם הפרמטר האחרון של fsockopen

יש כאן תעוד כולל הסבר עם תאור מעט שונה של איך עושים את זה.

http://php.net/manual/en/function.fsockopen.php

geblig פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1727
הצטרף: אוקטובר 2008
מיקום: חיפה
נתן תודות: 43 פעמים
קיבל תודות: 40 פעמים

שליחה #7 

עופר,
ראשית, תודה. הצלחתי להתגבר על המכשול הזה... זה היה משתנה ב ini
בשם allow_url_include.. הוא היה על off
אז הצלחתי לקבל את ה source כמו שרציתי.

עשיו, בעיה אחרת צצה לי... למה כשאני מבצע parse על איזה כיתוב עברי אני מקבל קוד אסקי של 215 (למשל)..שזה צורות מוזרות.. 8O

איך בדיוק אני ממיר את זה לאותיות הקודש?

תודה רבה (f)
איציק

geblig פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1727
הצטרף: אוקטובר 2008
מיקום: חיפה
נתן תודות: 43 פעמים
קיבל תודות: 40 פעמים

שליחה #8 

טוב.. גם זה הסתדר..
חייבים להשתמש ב charset שונה מהרגיל (utf eight)
charset=windows-1255

נמשיך...
איציק

oferlaor
סמל אישי של משתמש
מנהל
מנהל
תגובות: 78907
הצטרף: נובמבר 2004
שם מלא: עפר לאור
מיקום: מודיעין, ישראל
נתן תודות: 789 פעמים
קיבל תודות: 5398 פעמים

שליחה #9 

זה תלוי באתר. אם האתר מצהיר שהוא עובד ב-1255 (כמונו) אז צריך להתנהג בהתאם.

geblig פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1727
הצטרף: אוקטובר 2008
מיקום: חיפה
נתן תודות: 43 פעמים
קיבל תודות: 40 פעמים

שליחה #10 

הי עופר,

אני מנסה להוריד את ה source של
http://nzbmatrix.com/nzb.php?cat=41
מה שלא ניסיתי אני מקבל string ריק...
יש לך מושג למה?
איציק

geblig פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1727
הצטרף: אוקטובר 2008
מיקום: חיפה
נתן תודות: 43 פעמים
קיבל תודות: 40 פעמים

שליחה #11 

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

שלח תגובה

חזור אל “רשתות, אינטרנט ו- Fiber”