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

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

daMn 06-09-07 18:22

בעיה עם ביטויים רגולריים... :(
 
אף פעם לא אהבתי ביטויים רגולריים :(
אני מנסה להתעסק כבר הרבה זמן ללא הצלחה כל כך.

אז ככה אני מנסה להוציא נתונים מהאתר הבא:
http://www.toto.org.il/totodata/formprint/toto16.asp

אני בעצם מנסה להוציא את השורה שכתוב בה:
קוד:

736 טופס משחקים טוטו 16 מחזור
זה מה שניסיתי
PHP קוד:

<?php
$url 
"http://www.toto.org.il/totodata/formprint/toto16.asp";
$str file_get_contents($url);

preg_match("/class=\"headFont\">(.*)<\/td> /"$str$arr);
echo 
$arr[1];
?>

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

יום טוב,
ירין

Elad-A 06-09-07 20:12

איפה בדיוק אתה רואה שם "36 טופס משחקים טוטו 16 מחזור" ?

daMn 06-09-07 22:12

מוזר, צריך להיכנס קודם לאתר ואז זה מראה, בכל מקרה אפשר לראות פה.
תלחץ שם על הכפתור האדום "הדפס תוכניה" מצד שמאל מעל התוכניה.
http://www.toto.org.il/85_normal.asp

ואז תראה על מה אני מדבר.

Elad-A 06-09-07 22:38

אני חושב שהם חסמו את האופציה של ההעתקה מהם.

בכל מקרה הקוד שלך צריך להיות משהו כזה:

PHP קוד:

$url "http://www.toto.org.il/totodata/formprint/toto16.asp"
$str file_get_contents($url); 
preg_match_all("/<td colspan=6 align=right class=\"headFont\">(.*?)<\/td>/"$str$arr);
$title $arr[1][0]; 


daMn 06-09-07 22:49

ציטוט:

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

בכל מקרה הקוד שלך צריך להיות משהו כזה:

PHP קוד:

$url "http://www.toto.org.il/totodata/formprint/toto16.asp"
$str file_get_contents($url); 
preg_match_all("/<td colspan=6 align=right class=\"headFont\">(.*?)<\/td>/"$str$arr);
$title $arr[1][0]; 


לא עובד, גם לא שינית פה משהו מיוחד.
לא חייב את כל הtd, אפשר מהclass.

עדיין מחכה לפתרון...

Elad-A 06-09-07 22:52

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

שלך:

PHP קוד:

<?php 
$url 
"http://www.toto.org.il/totodata/formprint/toto16.asp"
$str file_get_contents($url); 

preg_match("/class=\"headFont\">(.*)<\/td> /"$str$arr); 
echo 
$arr[1]; 
?>

שלי:

PHP קוד:

$url "http://www.toto.org.il/totodata/formprint/toto16.asp";  
$str file_get_contents($url);  
preg_match_all("/<td colspan=6 align=right class=\"headFont\">(.*?)<\/td>/"$str$arr); 
$title $arr[1][0]; 
echo 
$title

זה נראה לך זהה?

daMn 06-09-07 23:00

ציטוט:

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

שלך:

PHP קוד:

<?php 
$url 
"http://www.toto.org.il/totodata/formprint/toto16.asp"
$str file_get_contents($url); 

preg_match("/class=\"headFont\">(.*)<\/td> /"$str$arr); 
echo 
$arr[1]; 
?>

שלי:

PHP קוד:

$url "http://www.toto.org.il/totodata/formprint/toto16.asp";  
$str file_get_contents($url);  
preg_match_all("/<td colspan=6 align=right class=\"headFont\">(.*?)<\/td>/"$str$arr); 
$title $arr[1][0]; 
echo 
$title

זה נראה לך זהה?

לא אמרתי זהה,
אני מתכוון שאין שינוי מהותי שפתר לי את הבעיה.
בכל מקרה מפה אפשר גם להוציא את הנתונים
http://www.toto.org.il/85_normal.asp

Elad-A 06-09-07 23:05

http://www.toto.org.il/85_zimzumim.asp
מפה זה טוב?

daMn 06-09-07 23:12

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 553062)

כן, אני רק צאיך להוציא את המשחקים.
את התוצאות אני יוציא מפה:
http://www.toto.org.il/totodata/wins.asp

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

Elad-A 06-09-07 23:19

מספיק לך המשחקים והתאריך?

daMn 06-09-07 23:22

ציטוט:

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

כן המשחקים ותאריך מספיק לי, אח"כ אני ינסה לקחת בעצמי את התוצאות של ההימורים(X,1,2) במקום שהזכרתי למעלה.

Elad-A 06-09-07 23:33

עשיתי משהו בכלל לא יעיל (לפי דעתי אפשר לשפר), אבל עובד טוב.

PHP קוד:

<?php
$site 
file_get_contents('http://www.toto.org.il/85_zimzumim.asp');
preg_match_all("/<td nowrap colspan=4 style='height:20px'><b>(.*?)<\/b><\/td>/si" $site $arr);
$title $arr[1][0];

preg_match_all("/<td align=right style='font-size:10px;color:#000000'>(.*?)&nbsp;<\/td>/si" $site $arr2);

preg_match_all("/<a class=teamslink style='font-weight:normal' href=javascript:showStat(.*?)>(.*?)<\/a><\/td>/si" $site $arr3);

$html "
<div style = \"text-align: center\">$title</div> <br />
<table border = \"1\" cellpading = \"0\" cellspacing = \"0\" width = \"80%\" dir = \"rtl\">
<tr>
    <td>המשחק</td>
    <td>תאריך</td>
</tr>
"
;

$total sizeof($arr3[2]);

for(
$i 0$i $total; ++$i)
{
$html .= "
<tr>
    <td>{$arr3[2][$i]}</td>
    <td>{$arr2[1][$i]}</td>
</tr>
"
;
}
$html .= "</table>";

echo 
$html;
?>

תהנה..

daMn 06-09-07 23:38

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 553071)
עשיתי משהו בכלל לא יעיל (לפי דעתי אפשר לשפר), אבל עובד טוב.

PHP קוד:

<?php
$site 
file_get_contents('http://www.toto.org.il/85_zimzumim.asp');
preg_match_all("/<td nowrap colspan=4 style='height:20px'><b>(.*?)<\/b><\/td>/si" $site $arr);
$title $arr[1][0];

preg_match_all("/<td align=right style='font-size:10px;color:#000000'>(.*?)&nbsp;<\/td>/si" $site $arr2);

preg_match_all("/<a class=teamslink style='font-weight:normal' href=javascript:showStat(.*?)>(.*?)<\/a><\/td>/si" $site $arr3);

$html "
<div style = \"text-align: center\">$title</div> <br />
<table border = \"1\" cellpading = \"0\" cellspacing = \"0\" width = \"80%\" dir = \"rtl\">
<tr>
    <td>המשחק</td>
    <td>תאריך</td>
</tr>
"
;

$total sizeof($arr3[2]);

for(
$i 0$i $total; ++$i)
{
$html .= "
<tr>
    <td>{$arr3[2][$i]}</td>
    <td>{$arr2[1][$i]}</td>
</tr>
"
;
}
$html .= "</table>";

echo 
$html;
?>

תהנה..

אני מעריך מאוד את ההשקעה באמת תודה, אני יסתדר מפה.
אני ישפר קצת את היעילות ואת הקוד.

שוב תודה ולילה טוב.


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

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