I have installed apache 2.2.3 and PHP 5.1.5 on Win XP (IIS is also set up on different port) I have try the sample code from php.net; however, it keeps giving me error on opening the file please help.

<?php
$file = "data.xml";
$depth = array();
 
function startElement($parser, $name, $attrs)
{
global $depth;
for ($i = 0; $i [ $depth[$parser]; $i++) {
echo " ";
}
echo "$name\n";
$depth[$parser]++;
}
 
function endElement($parser, $name)
{
global $depth;
$depth[$parser]--;
}
 
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input"); //it keeps dying here~~
}
 
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
?>

Thank you in advance,
Pillow

Recommended Answers

All 2 Replies

Try moving your initial variables down to just before the block where they're defined. PHP doesn't support global variables as other languages do, so there's no reason to define something above function blocks.

(I'm not sure if this will solve it, but it might.)

I found out that the real problem is somehow i am not able to load any external files from php. My current setting is Apache 2.2.3 PHP5.15 on WinXP. Is there any setting I have to make to get it load an external file?
Thanks,

Try moving your initial variables down to just before the block where they're defined. PHP doesn't support global variables as other languages do, so there's no reason to define something above function blocks.

(I'm not sure if this will solve it, but it might.)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.