Hi,
Ik ben momenteel bezich met een script dat informatie van verschillende webpagina's haalt. Dit is opzich geen probleem. Behalve dat ik iedere functie geschreven heb bijna zonder variable, ik heb nu dus even veel functies (die allemaal gehoorlijk gelijk zijn) als webpagina waarvan ik de informatie moet halen. Totaal worden het dus aardig wat functions
Wat ik dus wilde is 1 functie maken waar ik veel variable in pomp, die uit een array gehaald worden, zodat ik dus slechts 1 functie overhoud. Op zich is dit niet zo'n probleem op het feit na dat sommige stukken text die zijn opghaald op verschillende manieren veranderd moeten worden, dus moeten er verschillende functies aangeroepen worden.
hier volgen twee functies die ik wil samenvoegen.
Hoe kan ik dit het best aanpakken?
Thanks,
Martin
Ik ben momenteel bezich met een script dat informatie van verschillende webpagina's haalt. Dit is opzich geen probleem. Behalve dat ik iedere functie geschreven heb bijna zonder variable, ik heb nu dus even veel functies (die allemaal gehoorlijk gelijk zijn) als webpagina waarvan ik de informatie moet halen. Totaal worden het dus aardig wat functions
Wat ik dus wilde is 1 functie maken waar ik veel variable in pomp, die uit een array gehaald worden, zodat ik dus slechts 1 functie overhoud. Op zich is dit niet zo'n probleem op het feit na dat sommige stukken text die zijn opghaald op verschillende manieren veranderd moeten worden, dus moeten er verschillende functies aangeroepen worden.
hier volgen twee functies die ik wil samenvoegen.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| function charts_dutch() { global $db; $fd = fopen("http://www.wanadoo.nl/top40/charts/index_1.html", "r" ); while (!feof ($fd)) { $buffer .= fgets($fd, 4096); } ereg ("<b>Top 40</b> ([0-9]{2})ste jaargang nummer ([0-9]{1,2})", $buffer, $issue); preg_match_all ("'<td bgcolor=#([A-Z0-9]{6})><b>(.*?)</b> - ([^\/]+) 'is", $buffer, $artisttrack); for ($i = 0; $i < 40; $i++) { $artistarray[$i] = str_replace("Ft.", "ft.", ucwords(str_replace(" <img", "", $artisttrack[3][$i]))); $trackarray[$i] = ucwords($artisttrack[2][$i]); } if (sizeof($trackarray) != sizeof($artistarray) OR sizeof($artistarray) != 40) { return false; } else { $spidered = $db->query_first("SELECT count(*) AS count FROM ms_charts WHERE issueweek = ". $issue[2] ." AND issueyear = ". msdate("Y", time()) ." AND chartname = 'dutch'" ); if ($spidered[count] == 0) { $db->query("INSERT INTO ms_charts (chartname, issueweek, issueyear, artists, tracks) VALUES ('dutch', $issue[2], ". msdate("Y", time()) .", '". addslashes(implode("||", $artistarray)) ."', '". addslashes(implode("||", $trackarray)) ."')" ); return true; } else { return false; } } } |
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| function charts_german() { global $db; $fd = fopen("http://www.mtv.de/hitlistgermany/index.php?historie=,,,Home,Charts&groupie=42&", "r" ); while (!feof ($fd)) { $buffer .= fgets($fd, 4096); } ereg ("Gültig ab ([0-9]{2}).([0-9]{2}).([0-9]{4})</td>", $buffer, $issue); $week = date("W", mktime (0, 0, 0, $issue[2], $issue[1], $issue[3])); preg_match_all ("'[img]""\"../_shared/leer.gif\"[/img](<b>|)(.*?)(</b>|)</div></td> <td background=\"\"valign=\"top\"><div id=\"text\">(.*?)</div></td>'is", $buffer, $artisttrack); for ($i = 0; $i < 100; $i++) { $artistarray[$i] = ucwords($artisttrack[2][$i]); $artistarray[$i] = str_replace("Feat.", "ft.", $artistarray[$i]); $trackarray[$i] = ucwords($artisttrack[4][$i]); } if (sizeof($trackarray) != sizeof($artistarray) OR sizeof($artistarray) != 100) { return false; } else { $spidered = $db->query_first("SELECT count(*) AS count FROM ms_charts WHERE issueweek = ". $week ." AND issueyear = ". $issue[3] ." AND chartname = 'german'" ); if ($spidered[count] == 0) { $db->query("INSERT INTO ms_charts (chartname, issueweek, issueyear, artists, tracks) VALUES ('german', $week, $issue[3], '". addslashes(implode("||", $artistarray)) ."', '". addslashes(implode("||", $trackarray)) ."')" ); return true; } else { return false; } } } |
Hoe kan ik dit het best aanpakken?
Thanks,
Martin