הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   הוצאת ביטוי מתוך קוד מקור של האתר שלי (https://hosts.co.il/forums/showthread.php?t=93783)

dor77 02-12-11 00:13

הוצאת ביטוי מתוך קוד מקור של האתר שלי
 
שלום.
אני רוצה לבנות סקריפט פשוט שיקרא את קוד מקור של האתר שלי ויחלץ משם משהו.
ניסיתי משהו כזה:

PHP קוד:


function get_string_between($string$start$end){
    
$string " ".$string;
    
$ini strpos($string,$start);
    if (
$ini == 0) return "";
    
$ini += strlen($start);
    
$len strpos($string,$end,$ini) - $ini;
    return 
substr($string,$ini,$len);
}

$fullstring file_get_contents("http://www.*******.co.il");
$parsed get_string_between($fullstring'<option value="DOS">''</option>');

echo 
$parsed

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

אשמח לעזרה, תודה רבה!

אדיר 02-12-11 02:29

למה שלא תשתמש בביטוי רגולרי?
preg_match

dor77 02-12-11 13:54

אממ..מה הדרך שבא זה יעזור לי?
האמת לא מנוסה כל כך..אשמח להכוונה..זה מאוד דחוף, תודה תודה!

Erez | TrustMedia.co.il 02-12-11 14:12

preg_match('/<option value="DOS">(.*)<\/option>/',$text,$match);
print_r($match);

משהו כזה

אדיר 02-12-11 14:13

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

dor77 02-12-11 19:26

ארז זה לא עובד..):

הנה הקוד במלואו בקיצור:

PHP קוד:


<?php

function get_part($start$end$haystack)
{
$start_position strpos($haystack$start0) + strlen($start);
$end_position strpos($haystack$end$start_position);

$haystack_length strlen($haystack);

return 
substr($haystack$start_position, ($end_position-$start_position));
}
$fullstring htmlspecialchars(file_get_contents("http://driverfast.com/AllSites/1/Pages/Admin/Fragment_Update.asp?Tree=29&FragmentId=1654"));
echo 
get_part('<option value="DOS">''</option>''' $fullstring '');



?>

תודה!!!

Haimz 02-12-11 19:39

תנסה את זה:
PHP קוד:

<?php

    $contents 
file_get_contents"http://www.******.co.il" );

    
preg_match_all'#<option value="DOS">(.+?)</option>#i' $contents $matches );
    
    
print_r$matches );
    
?>


Tal. 02-12-11 21:45

במקרים כאלה לי אישית יותר נוח לעבוד עם explode
אתה יכול לנסות.. מאד פשוט

dor77 03-12-11 14:06

חיים זה מה שאני מקבל:

Array ( [0] => Array ( ) [1] => Array ( ) )

explode נסיתי נראה לי.
הקטע שכשאר אני מחפש בקוד מקור זה לא טוב.

Itay 03-12-11 17:35

PHP קוד:

<?php
preg_match_all
('/\<option\ value\=\"DOS\"\>([^\<]+)\<\/option\>/ismx'$page$arr);
echo 
"<pre>";
print_r($arr);
?>



כל הזמנים הם GMT +2. הזמן כעת הוא 14:22.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ