InspectorGadjet: 1000 Dank. Jetzt funktioniert es wunderbar.
Beiträge von Ordovicium
-
-
Also bei folgendem bekomme ich lauter fehlermeldungen:
Klasse:
PHP
Alles anzeigen<?php class XMLParser { var $file; var $stack = array(); // start_element_handler ( resource parser, string name, array attribs ) function startElement($parser, $name, $attribs) { global $stack; $tag=array("name"=>$name,"attrs"=>$attrs); array_push($stack,$tag); } // end_element_handler ( resource parser, string name ) function endElement($parser, $name) { global $stack; $stack[count($stack)-2]['children'][] = $stack[count($stack)-1]; array_pop($stack); } // handler ( resource parser, string data ) function characterData($parser, $data) { global $stack,$i; if(trim($data)) { $stack[count($stack)-1]['data'] .= $data; } } // handler ( resource parser, string target, string data ) function PIHandler($parser, $target, $data) { global $stack,$i; //PHP EVALUATION if ((strtolower($target)) == "php") { global $parser_file; //eval($data); gust doesn't work if you want the //string added to the array $text .= '<?php '.$data.' ?>'; ob_start(); eval ('?>' . $text); $text = ob_get_clean(); $stack[count($stack)-1]['data'] .= $text; } } function defaultHandler($parser, $data) { } function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId, $publicId) { if ($systemId) { if (!list($parser, $fp) = new_xml_parser($systemId)) { printf("Could not open entity %s at %s\n", $openEntityNames, $systemId); return false; } while ($data = fread($fp, 4096)) { if (!xml_parse($parser, $data, feof($fp))) { printf("XML error: %s at line %d while parsing entity %s\n", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser), $openEntityNames); xml_parser_free($parser); return false; } } xml_parser_free($parser); return true; } return false; } function new_xml_parser($file) { global $parser_file; $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0); xml_set_processing_instruction_handler($xml_parser, "PIHandler"); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); xml_set_default_handler($xml_parser, "defaultHandler"); xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler"); if (!($fp = @fopen($file, "r"))) { return false; } if (!is_array($parser_file)) { settype($parser_file, "array"); } $parser_file[$xml_parser] = $file; return array($xml_parser, $fp); } function NewParse($file) { if (!(list($xml_parser, $fp) = $this->new_xml_parser($file))) { die("could not open XML input"); } //ERROR while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d\n", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } //END xml_parser_free($xml_parser); return $stack; } } ?>
Aufruf:PHP
Alles anzeigen<? include("class/xmlparser.php"); $p = new XMLParser(); $stack = $p->NewParse("http://www.informatik-forum.at/external.php?type=XML"); print("<pre>\n"); print_r($stack); print("</pre>\n"); ?>
Fehler:Code[B]Warning[/B]: xml_parse() [[URL='http://localhost/teko/public_html/function.xml-parse']function.xml-parse[/URL]]: Unable to call handler startElement() in [B]D:\apachefriends\xampp\htdocs\teko\public_html\class\xmlparser.php[/B] on line [B]115[/B] [B]Warning[/B]: xml_parse() [[URL='http://localhost/teko/public_html/function.xml-parse']function.xml-parse[/URL]]: Unable to call handler characterData() in [B]D:\apachefriends\xampp\htdocs\teko\public_html\class\xmlparser.php[/B] on line [B]115[/B] [B]Warning[/B]: xml_parse() [[URL='http://localhost/teko/public_html/function.xml-parse']function.xml-parse[/URL]]: Unable to call handler endElement() in [B]D:\apachefriends\xampp\htdocs\teko\public_html\class\xmlparser.php[/B] on line [B]115[/B]
Und das so oft wie Einträge in der XML sind. Aber wo ruft er die Funktionen auf damit ich mit $this darauf verweisen kann.
-
Code
[B]Fatal error[/B]: Cannot re-assign $this in [B]D:\apachefriends\xampp\htdocs\teko\public_html\class\xmlparser.php[/B] on line [B]14[/B]
Zeile 14:
global $this->stack;Aber wie gesagt mein Ziel wäre es der Klasse/Funktion eine Adresse zu liefern und ein array mit den Infos zurück zu bekommen.
PHP<?php include('class/xmlparser.php'); $p = new xmlparser(); $stack = $p->xmlparser("http://www.informatik-forum.at/external.php?type=XML"); echo "<PRE>"; print_r($stack); echo "</PRE>"; ?>
Mein Versuch ging dahin, aus dem letzem Abschnitt (if (!(list($xml_parser, $fp) = new_xml_parser($this->file)))) eine Funktion zu machen und dort den start zu initieren, aber irgendwie will es ned so ganz.
-
Ich schaffe es einfach nicht aus folgendem eine Klasse zu erzeugen:
Ich möchte der Klasse schlussendlich nur noch die URL übergeben.PHP
Alles anzeigen<?php $file = "http://www.informatik-forum.at/external.php?type=XML"; $stack = array(); // start_element_handler ( resource parser, string name, array attribs ) function startElement($parser, $name, $attribs) { global $stack; $tag=array("name"=>$name,"attrs"=>$attrs); array_push($stack,$tag); } // end_element_handler ( resource parser, string name ) function endElement($parser, $name) { global $stack; $stack[count($stack)-2]['children'][] = $stack[count($stack)-1]; array_pop($stack); } // handler ( resource parser, string data ) function characterData($parser, $data) { global $stack,$i; if(trim($data)) { $stack[count($stack)-1]['data'] .= $data; } } // handler ( resource parser, string target, string data ) function PIHandler($parser, $target, $data) { global $stack,$i; //PHP EVALUATION if ((strtolower($target)) == "php") { global $parser_file; //eval($data); gust doesn't work if you want the //string added to the array $text .= '<?php '.$data.' ?>'; ob_start(); eval ('?>' . $text); $text = ob_get_clean(); $stack[count($stack)-1]['data'] .= $text; } } function defaultHandler($parser, $data) { } function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId, $publicId) { if ($systemId) { if (!list($parser, $fp) = new_xml_parser($systemId)) { printf("Could not open entity %s at %s\n", $openEntityNames, $systemId); return false; } while ($data = fread($fp, 4096)) { if (!xml_parse($parser, $data, feof($fp))) { printf("XML error: %s at line %d while parsing entity %s\n", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser), $openEntityNames); xml_parser_free($parser); return false; } } xml_parser_free($parser); return true; } return false; } function new_xml_parser($file) { global $parser_file; $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 0); xml_set_processing_instruction_handler($xml_parser, "PIHandler"); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); xml_set_default_handler($xml_parser, "defaultHandler"); xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler"); if (!($fp = @fopen($file, "r"))) { return false; } if (!is_array($parser_file)) { settype($parser_file, "array"); } $parser_file[$xml_parser] = $file; return array($xml_parser, $fp); } if (!(list($xml_parser, $fp) = new_xml_parser($file))) { die("could not open XML input"); } //ERROR while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d\n", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } //END xml_parser_free($xml_parser); print_r($stack); ?>
-
-
Achja, die good old days. Ratet einmal
[Blockierte Grafik: http://static.flickr.com/39/123914414_b4c3b592a4_o.jpg] -
Wenn man den Nachrichten glauben schenken darf, wird bald Windows auf dem Apple zu sehen sein. Ich kann mir das nicht vorstellen. Wo doch der Tiger so gepusht wurde von Apple. Was haltet ihr davon? Ich denke, an der Sache ist nix dran.
-
Zwar keine Freeware, aber meiner Meinung nach das beste Tool für sowas:
Data Becker CD/DVD Druckerei -
Ich weiß jetzt zwar nicht wie dein Code aussieht aber eigentlich sollte das laut docu ned so auftauchen:
PHP
Alles anzeigen<?php require_once 'XML/Parser.php'; class myParser extends XML_Parser { function myParser() { parent::XML_Parser(); } /** * handle start element * * @access private * @param resource xml parser resource * @param string name of the element * @param array attributes */ function startHandler($xp, $name, $attribs) { printf('handle start tag: %s<br />', $name); } /** * handle start element * * @access private * @param resource xml parser resource * @param string name of the element */ function endHandler($xp, $name) { printf('handle end tag: %s<br />', $name); } /** * handle character data * * @access private * @param resource xml parser resource * @param string character data */ function cdataHandler($xp, $cdata) { // does nothing here, but might e.g. print $cdata } } $p = &new myParser(); $result = $p->setInputFile('xml_parser_file.xml'); $result = $p->parse(); ?>
Obwohl ich zugeben muss, dass ich XML noch immer mit PHP parse:PHP
Alles anzeigen<?php class XMLParser { var $filename; var $xml; var $data; function XMLParser($xml_file) { $this->filename = $xml_file; $this->xml = xml_parser_create(); xml_set_object($this->xml, $this); xml_set_element_handler($this->xml, 'startHandler', 'endHandler'); xml_set_character_data_handler($this->xml, 'dataHandler'); $this->parse($xml_file); } function parse($xml_file) { if (!($fp = fopen($xml_file, 'r'))) { die('Cannot open XML data file: '.$xml_file); return false; } $bytes_to_parse = 512; while ($data = fread($fp, $bytes_to_parse)) { $parse = xml_parse($this->xml, $data, feof($fp)); if (!$parse) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->xml)), xml_get_current_line_number($this->xml))); xml_parser_free($this->xml ); } } return true; } function startHandler($parser, $name, $attributes) { $data['name'] = $name; if ($attributes) { $data['attributes'] = $attributes; } $this->data[] = $data; } function dataHandler($parser, $data) { if ($data = trim($data)) { $index = count($this->data) - 1; // begin multi-line bug fix (use the .= operator) $this->data[$index]['content'] .= $data; // end multi-line bug fix } } function endHandler($parser, $name) { if (count($this->data) > 1) { $data = array_pop($this->data); $index = count($this->data) - 1; $this->data[$index]['child'][] = $data; } } } ?>
-
@2: Es gab einmal einen Hack dazu, der aber nur bis 3.0.x ging. Vielleicht gibt es wieder was auf vBulletin.org
Smilies: Crack's Smilies -
Hab gerade da ein Netzteil liegen, wo der Connector fürs Motherboard 24 pins hat. Mein Board hat aber 20. Habe ich da was verpasst? Gabs es in den letzten 2 Jahren einen neuen Standard, der mir jetzt das Leben versauen will
-
Finger weg von Firstload. Erstens einmal illegal und zweitens:
http://www.123recht.net/forum_topic.as…id=40016&page=1 -
Kabelmodems melden sich via MAC-Adresse beim Provider an. Deswegen funkt auch die Lösung:
Internet ---> Kabel-Modem ---> PC Netzwerk-Karte
Weil deine MAC Adresse von der PC-Karte beim Prov. reg. ist.
ALSO.....melde die MAC-Adresse vom Router beim Provider an. -
-
Also wenn ich in der Adresszeile "informatik-forum" eingebe, dann nimmt er den ersten Treffer bei google. Funktioniert wunderbar auf meinem PC, aber auf dem Laptop tut er es als ganz normale Adresse assoziieren. Und unter http://informatik-forum findet er natürlich nix. Muss ich da irgendwas einstellen? Soviel ich weiß ist das keine Extension sonder ein Feature von Firefox.
-
Also die PSP kann alles
MP3's abspielen, Videos anschauen (Mit ein bischen spielen kannst auch deine DVD's auf PSP Format umwandeln.)
Und natürlich zocken. Also zusammengefasst: Ich kenne kein "Ding", dass das alles kann. Wobei bei MP3's empfehle ich eher einen normalen MP3 Player, weil die PSP nicht gerade klein ist. Da passt ein USB Stick besser in die Tasche.
Die Spiele sind ein wahnsinn. Aber dass sind sie immer bei neuen Konsolen. Aber Nintendo kann sich warm anziehen, weil die Qualität durchaus mit der PS2 vergleichbar ist.
Für manche ein Manko, für mich akzeptabel, der Akku. Nach 5-6 Stunden schreit er nach einer Steckdose, aber ganz ehrlich. 5-6 Stunden mit diesem Multimedia Angebot, finde ich ok.
WLAN und der integrierte Browser sind auch eine nette Spielerei.An deiner Stelle würde ich aber warten, weil das Ding ganz ganz neu ist. Zu Weihnachten wird sie sicherlich nicht mehr soviel kosten.
-
Morgen ist es so weit. Die PSP findet nach Österreich. Nach 5 Monaten spiele ich noch immer damit, und das heisst was
Ich kann es jedem Gamer nur sehr empfehlen. Und die es sich zulegen wollen, bzw. schon haben, was haltet ihr von einem netten WLAN Match. :thumb: -
Ich frage mich schon die ganze Zeit wie das in Zukunft funktionieren soll, da die Softwarelizenz immer pro CPU verkauft wird.
-
Ist zwar nicht phpBB, aber die haben alle den gleichen Ablauf:
http://www.vbulletin.com/docs/html/ -
Ich mach mein Praktikum in New York, und die Firma hat mich hingeschickt.