ID:               25686
 Updated by:       [EMAIL PROTECTED]
 Reported By:      bart at mediawave dot nl
-Status:           Open
+Status:           Bogus
 Bug Type:         Feature/Change Request
 Operating System: All
 PHP Version:      Irrelevant
 New Comment:

You don't need to use XML functions for this,
just include() the file..



Previous Comments:
------------------------------------------------------------------------

[2003-09-29 15:37:46] bart at mediawave dot nl

Excuse me if I was not clear enough. This "problem" occurs when parsing
the specified XML file with the Expat XML functions. I get this problem
with PHP 4.3.2, PHP 4.3.3 and PHP 5.0.0 beta.

You can reproduce the problem with the code on
http://www.php.net/manual/en/ref.xml.php under "Example 3. External
Entity Example" and using the following XML for xmltest.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<XMLTAG>
  <?php for ($i = 0; $i < 4; $i++) { ?>    
      <XMLTAG2>
      <? echo $i ?>
      </XMLTAG2>
  <?php } ?>
</XMLTAG>

------------------------------------------------------------------------

[2003-09-29 05:42:00] [EMAIL PROTECTED]

With PHP 4.3.3 I get the correct output.
Disable short-tags maybe?


------------------------------------------------------------------------

[2003-09-29 04:38:50] bart at mediawave dot nl

Description:
------------
With the XML parser module PHP currently handles processing instruction
code per tag. For example: <?php echo 'Hello World' ?> is seen as an
isolated chunk of code.

This doesn't work:

<XMLTAG>
  <?php for ($i = 0; $i < 4; $i++): ?>
    <XMLTAG2>
      <?php echo $i ?>
    </XMLTAG2>
  <?php endfor; ?>
</XMLTAG>

PHP handles the PHP code per <? somecode ?> tag. While in this example
the code actually spans through 5 tags. But PHP doesn't recognize it
this way.

Also. For my application it would be desirable if the PHP XML parser
would not return the php code. The evaluation of the PHP code in the
XML should be hanled by the parser. It should then only return the
resulting (evaluated) XML as if it was normal XML.

Reproduce code:
---------------
<?xml version="1.0" encoding="iso-8859-1"?>
<XMLTAG>
  <?php for ($i = 0; $i < 4; $i++): ?>
    <XMLTAG2>
      <?php echo $i ?>
    </XMLTAG2>
  <?php endfor; ?>
</XMLTAG>


Expected result:
----------------
<XMLTAG>
    <XMLTAG2>
      0
    </XMLTAG2>
    <XMLTAG2>
      1
    </XMLTAG2>
    <XMLTAG2>
      2
    </XMLTAG2>
    <XMLTAG2>
      3
    </XMLTAG2>
</XMLTAG>


Actual result:
--------------
Parse error: parse error, unexpected $end in
D:\php-4.3.2\PEAR\wrap_v4\dam.php(544) : eval()'d code on line 1

Parse error: parse error, unexpected T_ENDFOR in
D:\php-4.3.2\PEAR\wrap_v4\dam.php(544) : eval()'d code on line 1



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=25686&edit=1

Reply via email to