Bug #16838 Updated: PHP short_open_tags and <?xml .. ?>

From: Date: Fri, 26 Apr 2002 00:56:42 +0000
Subject: Bug #16838 Updated: PHP short_open_tags and <?xml .. ?>
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-6031@lists.php.net to get a copy of this message
ID: 16838 Updated by: rasmus@php.net Reported By: sloetz@web.de Status: Open Bug Type: Feature/Change Request Operating System: all PHP Version: 4.2.0 New Comment: This seems extraneous to me. You can simply echo the one <?xml tag that is usually needed. No need to turn off short_tags. Just do: <?echo '<?xml ...'?> at the top. Previous Comments: ------------------------------------------------------------------------ [2002-04-25 20:07:28] sloetz@web.de Hello, I would like to suggest a small change in PHP's handling of open tags. I think it would be diserable to allow the use of the short tag syntax ('<? ..?>') for documents also containing <?xml [..] ?> tags. The increasing usage of XML and especially XHTML (for which the <?xml..?> tag is of course mandatory) will lead to a growing number of collisions between PHP's syntax and user's requirements. AFAIK the only way for mixing xml-documents with PHP code is to disable the short_open_tags option in the php.ini file or make equivalent settings in the httpd.conf (if using the Apache SAPI). In my opinion, this is more a workaround than a real solution. Obviously, it is impossible to include 'old' code or third-party code which uses short tags and even more important: not every user has access to the php.ini file or httpd.conf file to modify the settings accordingly. Therefore I would like to propose to change the PHP language scanner (as found in zend_language_scanner.l) in a way that the token '<?xml' is not treated as a PHP opening tag but rather (correctly) recognized as inline HTML. It could probably be sufficient to create an additional rule for the scanner's <INITIAL>-start condition that would catch the string '<?xml' before it can be treated as an PHP open tag, e.g.: <INITIAL>"<?xml" { zendlval->value.str.val = (char *) estrndup(yytext, yyleng); zendlval->value.str.len = yyleng; zendlval->type = IS_STRING; return T_INLINE_HTML; } I'm not sure whether this piece of code really works or has unwanted side effects etc., but I guess it can put forward my intention more clearly than more words :-) Thanks for your attention, Sascha Loetz (sloetz@web.de) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=16838&edit=1

« previous php.bugs (#6031) next »