在php文件中,我有以下
<script id="svg-xml" type="text/template">
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<etc />
</script>
XML声明开头的和 <?
呈现为PHP开始标记的缩写形式。我的解决方案是让PHP回显<
符号并像<?='<'?>?xml version=...
一样使用它。那里有更优雅的其他/更好的选择吗?
[编辑] 我正在寻找替代PHP方法,如果有的话。此外,我不打算关闭短标签,因为我在这个页面中使用了很多标签。
答案 0 :(得分:7)
回应整行,这比你的命题更具可读性。
<?php echo '<?xml version="1.0" standalone="no"?>';?>
您还可以在配置中禁用短标签。 (显然,如果你依赖其他短标签,这不是一个解决方案。
答案 1 :(得分:1)
只需使用short open tags停用short_open_tag
directive即可。精确的机制取决于你如何运行PHP。
是的,我刚看到你的编辑不想使用它。然后,这个问题变得主观,因为它取决于你对更优雅意味着什么的想法。
如果使用变量/常量更优雅:
<?php
define('XML_INIT', '<?xml');
?>
<script id="svg-xml" type="text/template">
<?=XML_INIT?> version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<etc />
</script>
如果使用外部文件更优雅:
<script id="svg-xml" type="text/template">
<?php readfile('./template.svg'); ?>
</script>
如果使用heredoc更优雅:
<script id="svg-xml" type="text/template">
<?php echo <<<EOM
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<etc />
EOM
?>
</script>
答案 2 :(得分:-1)
您似乎专注于使您的PHP代码尽可能可读。 看看XHP,它在Facebook内部使用,使PHP更具可读性。
以下是一些有效的XHP代码示例(它是PHP的扩展,因此您可以在PHP中执行任何操作):
<?php
$href = 'http://www.facebook.com';
echo <a href={$href}>Facebook</a>;
第二行不是字符串,而是可以直接在XHP中回显的字符串。 我没有看到来自网站的复制粘贴文档样本有多大意义,如果你觉得它很有意思,请继续尝试。 需要时间来习惯,但结果是更清晰的PHP代码,它也更安全,更容易出错。