-1

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 アプローチを探しています。また、このページのあちこちで短いタグを使用しているため、短いタグをオフにする予定はありません。


最初の質問については、この質問を参照してください。特に2番目の答え。とにかく、変換ではなく、単一の浮動小数点プロパティでテストを行うことをお勧めします。これにより、ログを記録するのがより困難なマトリックスが得られます。(タイミング機能のみに興味があるため)

一方、steps 関数には floor() 計算が必要で、次のようなものです。

floor (currentTime * numSteps / totalTime)

ステップ (n, end) の場合。ステップ (n, start) の場合はそれに 1 を加えます。

4

3 に答える 3

7

行全体をエコーし​​ます。これは、提案よりも読みやすいです。

<?php echo '<?xml version="1.0" standalone="no"?>';?>

構成で短いタグを無効にすることもできます。(明らかに、他の場所で短いタグに依存している場合、これは解決策ではありません。

于 2013-09-07T18:53:33.120 に答える
1

Simply disable short open tags with the short_open_tag directive. The precise mechanism depends on how you run PHP.


Right, I've just seen your edit about not wanting to use this. Then, this question is becoming subjective since it depends on your idea of what more elegant means.

If using a variable/constant is more elegant:

<?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>

If using an external file is more elegant:

<script id="svg-xml" type="text/template">
<?php readfile('./template.svg'); ?>
</script>

If using heredoc is more elegant:

<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>
于 2013-09-07T19:03:20.967 に答える
-1

PHP コードをできるだけ読みやすくすることに重点を置いているようです。PHP をより読みやすくするために Facebook で内部的に使用されているXHPを見てください。

有効な XHP コードの例をいくつか示します (これは PHP の拡張であるため、PHP で行うことは何でも実行できます)。

<?php
$href = 'http://www.facebook.com';
echo <a href={$href}>Facebook</a>;

2 行目は文字列ではありませんが、XHP で直接エコーできるものです。サイトからドキュメントのサンプルをコピーして貼り付けてもあまり意味がありません。興味がある場合は、試してみてください。慣れるまでには時間がかかりますが、その結果、より安全でバグが発生しにくい、はるかにクリーンな PHP コードが得られます。

于 2013-09-07T18:59:05.127 に答える