Hey..
Ik ben een scriptje aan het schrijven om sommige topic titels van GOT op mijn site te krijgen.
Maar nu zit ik met 1 probleempje.. hij geeft geen foutmelding, maar hij werkt gewoon niet!
Kan iemand mij misschien verder op weghelpen?
Updater :
xml.php
Bvd!
Maico
Ik ben een scriptje aan het schrijven om sommige topic titels van GOT op mijn site te krijgen.
Maar nu zit ik met 1 probleempje.. hij geeft geen foutmelding, maar hij werkt gewoon niet!
Kan iemand mij misschien verder op weghelpen?
Updater :
PHP:
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
| <?php include ("include/config.php"); include ("include/xml.php"); // Make a selection of the XML $arr = array("topic_name", "topic_id", "topic_lastmodified_timestamp", "topic_messagecount", "topic_pagecount", "topic_lastmessage_id", "topic_lastposter_nickname"); $xml = new xml(); if ($xml->parse($arr, "http://gathering.tweakers.net/xml/list_topics/5/7")) { if (count($xml->items) > 0) { //$db->query("DELETE FROM got_topics"); foreach ($xml->items as $key => $value) { if (substr_count(strtoupper($value["TOPIC_NAME"]), "Rosetta@home")) { $sql = "INSERT INTO got_topics VALUES ('%s','%s',%d,'%s','%s','%s',%d, %d)"; $sql = sprintf($sql, $value["TOPIC_ID"], $value["TOPIC_NAME"], $value["TOPIC_LASTMODIFIED_TIMESTAMP"], $value["TOPIC_MESSAGECOUNT"], $value["TOPIC_PAGECOUNT"], $value["TOPIC_LASTPOSTER_NICKNAME"], $value["TOPIC_LASTMESSAGE_ID"], 1); mysql_query($sql) or die('Error ,query failed'); } else if (substr_count(strtoupper($value["TOPIC_NAME"]), "SOB")) { $sql = "INSERT INTO got_topics VALUES ('%s','%s',%d,'%s','%s','%s',%d, %d)"; $sql = sprintf($sql, $value["TOPIC_ID"], $value["TOPIC_NAME"], $value["TOPIC_LASTMODIFIED_TIMESTAMP"], $value["TOPIC_MESSAGECOUNT"], $value["TOPIC_PAGECOUNT"], $value["TOPIC_LASTPOSTER_NICKNAME"], $value["TOPIC_LASTMESSAGE_ID"], 2); mysql_query($sql) or die('Error ,query failed'); } } } } ?> |
xml.php
PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
| <? class xml { var $parser; var $current_tag=""; // Bijhouden van huidige XML tag var $aantal = 0; // Totaal aantal items var $items; // Opslaan van XML data in de vorm van een Array var $source; // Bron bestand var $map_array; // Alle te parsen tags var $max; // Maximaal aantal te parsen elementen function xml() { $this->parser = xml_parser_create(); xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($this->parser, "tag_open", "tag_close"); xml_set_character_data_handler($this->parser, "cdata"); } function parse($arr, $file="", $max=4096) { xml_set_object($this->parser, $this); // Controleer of het tweede argument daadwerkelijk een array is if (is_array($arr)) { $file = ($file =="" && $this->source !="") ? $this->source : $file; while (list ($key, $val) = each ($arr)) { $this->map_array[$key] = strtoupper(trim($val)); } $this->aantal = 0; $this->current_tag = ""; $this->max=$max; // Controleer of het bestand bestaat if ($fp = fopen($file, "r")) { while ($data = fread($fp, 10000)) { if (!xml_parse($this->parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->parser)), xml_get_current_line_number($this->parser))); } } fclose($fp); } else echo "Kan bestand '$file' niet openen"; } else echo "Het eerste argument is geen Array"; } function tag_open($parser, $tag, $attributes) { $this->current_tag = $tag; } function cdata($parser, $cdata) { if ($this->aantal < $this->max && sizeof($this->map_array) > 0 && in_array($this->current_tag, $this->map_array)) { $this->items[$this->aantal][$this->current_tag] = $cdata; if ($this->current_tag == end($this->map_array)) { $this->aantal++; } } } function tag_close($parser, $tag) { $this->current_tag = ""; } function free() { xml_parser_free($this->parser); } } ?> |
Bvd!
Maico