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

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

-roee- 23-07-07 16:09

[PHP] ביטויים רגולרים
 
שלום,

יש לי את המחרוזת הבאה:
קוד:

<tr><td height='18' width=144px  class=GtblTitleItemright>&nbsp;מדד אחרון</td><td  width=78px  class=greenGtblItem align=right><div dir=ltr>&nbsp;1,165.05&nbsp;</div></td></tr>
אני רוצה להוציא ממנה את המספר הזה:
1,165.05


ניסיתי לעשות משהו כזה:
PHP קוד:

preg_match_all('/&icirc;&atilde;&atilde; &agrave;&ccedil;&oslash;&aring;&iuml;</td><td  width=78px  class=greenGtblItem align=right><div dir=ltr>&nbsp;(.*)&nbsp;<\/div>/'$site$site

כאשר המשתנה site הוא כל המחרוזת..
אך משום מה זה לא עובד..

איך עושים שזה יעבוד?

תודה

חיים 23-07-07 16:15

אתה רוצה לבדוק אם המספר קיים או למצוא תמיקום שלו או למצוא מה קיים במקום שלו??

Meir 23-07-07 16:18

ככה:

קוד:

/<div.*>(.*?)<\/div>/

-roee- 23-07-07 17:53

תודה רבה מאור

עכשיו עוד שאלה שקשורה לנושא
איך אני מוצא בקובץ שאני עושה לו file_get_contents בעזרת ביטויים רגולרים את הביטוי הזה:
<IMG SRC="/chartfx62/temp/XXXXX.png" WIDTH="350" HEIGHT="196" Jpeg>

כאשר לא ידוע מה זה XXXXX


תודה רבה

Meir 23-07-07 18:02

PHP קוד:

<?php

$file 
'<IMG SRC="/chartfx62/temp/XXXXX.png" WIDTH="350" HEIGHT="196" Jpeg';

preg_match_all('/<IMG SRC="\/chartfx62\/temp\/(.*?).png".*/'$file$f);

print_r($f);

?>


-roee- 23-07-07 19:09

ציטוט:

נכתב במקור על ידי elbaz.maor (פרסם 527943)
PHP קוד:

<?php

$file 
'<IMG SRC="/chartfx62/temp/XXXXX.png" WIDTH="350" HEIGHT="196" Jpeg';

preg_match_all('/<IMG SRC="\/chartfx62\/temp\/(.*?).png".*/'$file$f);

print_r($f);

?>



עשיתי ככה:

PHP קוד:

$url "http://www.tase.co.il/TASE/MarketData/Indices/MarketCap/IndexMainDataMarket.htm?Action=1&IndexID=142";
$site file_get_contents($url);

preg_match_all('/<IMG SRC="\/chartfx62\/temp\/(.*?).png".*/'$site$f);

print_r($f); 


והוא הביא לי את השגיאה:
Warning: preg_match_all() expects parameter 2 to be string, array given in ..

4ior 23-07-07 20:15

תנסה לעשות ככה:
PHP קוד:

$site ob_get_contents($url); 


-roee- 23-07-07 20:33

ציטוט:

נכתב במקור על ידי 4ior (פרסם 528056)
תנסה לעשות ככה:
PHP קוד:

$site ob_get_contents($url); 


לא עובד..

Elad-A 23-07-07 20:46

ציטוט:

נכתב במקור על ידי roeenoy (פרסם 527989)
עשיתי ככה:

PHP קוד:

$url "http://www.tase.co.il/TASE/MarketData/Indices/MarketCap/IndexMainDataMarket.htm?Action=1&IndexID=142";
$site file_get_contents($url);

preg_match_all('/<IMG SRC="\/chartfx62\/temp\/(.*?).png".*/'$site$f);

print_r($f); 


והוא הביא לי את השגיאה:
Warning: preg_match_all() expects parameter 2 to be string, array given in ..


הרצתי את הקוד שלך והוא החזיר CFT0723_0946273A7BE

-roee- 23-07-07 20:51

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 528086)
הרצתי את הקוד שלך והוא החזיר CFT0723_0946273A7BE


אה דוגרי אז הוא כן עובד :)

סתם הורדתי לעצמי את הביטחון העצמי ושאלתי על כל שטות..

-roee- 23-07-07 21:14

אני לא מצליח לערוך אז תקשיבו:

יש לי 2 קודים שונים:
כשאני מפעיל את הקוד הזה בנפרד הוא עובד:
PHP קוד:

        $url "http://www.tase.co.il/TASE/MarketData/Indices/MarketCap/IndexMainDataMarket.htm?Action=1&IndexID=142";
        
$site file_get_contents($url);

        
preg_match_all('/<div.*>(.*?)<\/div>/'$site$site);
        
$var = array();

        foreach(
$site AS $s)
        {
            foreach(
$s AS $t)
            {
                
$var[] = $t;
            }
        } 

וגם כשאני מפעיל את הקוד הזה בנפרד הוא עובד:
PHP קוד:

        $url "http://www.tase.co.il/TASE/MarketData/Indices/MarketCap/IndexMainDataMarket.htm?Action=1&IndexID=142";
        
$site file_get_contents($url);

        
preg_match_all('/<IMG SRC="\/chartfx62\/temp\/(.*?).png".*/'$site$img_name); 

        
$image = array();

        foreach(
$img_name AS $img)
        {
            foreach(
$img AS $im)
            {
                
$image[] = $im;
            }
        } 

אז הכל סבבה עד עכשיו

ניסיתי לשים את שניהם באותו עמוד ואז הוא מפעיל רק את הקוד הראשון ורושם שגיאה על הקוד השני:
קוד:

Warning: preg_match_all() expects parameter 2 to be string, array given in C on line 40

Warning: Invalid argument supplied for foreach() in C on line 44

אין לי מושג למה..

תודה על העזרה

Elad-A 23-07-07 21:25

בראשון תחליף לזה:

PHP קוד:


        preg_match_all
('/<div.*>(.*?)<\/div>/'$site$site1); 
        
$var = array(); 

        foreach(
$site1 AS $s
        { 
            foreach(
$s AS $t
            { 
                
$var[] = $t
            } 
        } 


-roee- 23-07-07 21:51

אחלה תודה רבה אלעד


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

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