这是我目前做的方式。在PHP中合并JavaScript的最佳方法?
<?php
//show footer
echo "<script type='text/javascript'>\n";
echo "alert('Congrats');\n";
echo "</script>";
?>
有没有更好的方法,而不仅仅是回声呢?
这是我目前做的方式。在PHP中合并JavaScript的最佳方法?
<?php
//show footer
echo "<script type='text/javascript'>\n";
echo "alert('Congrats');\n";
echo "</script>";
?>
有没有更好的方法,而不仅仅是回声呢?
?>
alert('Congrats');
<?
如果你真的必须从PHP打印出来执行JS,它至少如果您将js功能存储在某个文件的功能中,然后通过打印呼叫进行调用,请保持清洁。
可以使用模型 - 视图 - 控制器模式用于输出的JavaScript。
你可以有大部分的JS是存储在 “视图” 文件:
myJavascript.js.php:
alert('hello bob');
alert('hello <?php echo $name; ?>');
alert('whats up?');
你的控制器,jsController.php:
$name = "Jane";
我建议保留PHP文件只是为PHP代码,并保持你的前端代码(HTML/CSS/JavaScript)的单独的模板文件。
我最后一次检查,混合表示层&后端代码放到同一个文件是流行大约12年前。
您的项目文件的层次结构看起来是这样的:
- my_project
- lib
- PHP files here
- templates
- HTML templates here
- public <- this is your document root for web server
- index.php <- just a dispatcher
- js
- images
- css
+1我会用这个目录树来完成它,但是这个想法依然存在:JS除了在需要动态生成它们的罕见情况下,必须在分离文件中使用kep。 – 2010-03-25 20:14:01
使用here文档,或打破了PHP模式为“HTML”模式。如果JavaScript是完全静态的,或有需要有包括一些PHP价值几部分,放到HTML模式(“?>”出来的PHP)。这将允许任何像样的文本编辑器意识到您正在执行HTML和Javascript,并根据需要突出显示语法。以下都是等价的,但自己决定哪个更可读:
'纯PHP':
<?php
echo '<script>';
echo ' var x = [' . $somePHPvar . '];';
echo ' alert(x);';
echo '<script>';
?>
'定界符' 语法:
<?php
echo <<<EOF
<script>
var x = [{$somePHPvar}];
alert(x);
</script>
EOF;
?>
'HTML模式':
<?php ?>
<script>
var x = [<?php echo $somePHPVar ?>];
alert(x);
</script>
加分/每个劣势:
'
和"
)的好处,因此任何html看起来都会更干净。大多数编辑器都会识别heredoc块中的PHP变量并适当地给它们着色,但其余的文本将被视为文本,所以javascript/html看起来是一样的。另外,您不能将函数调用插入到文本中。您必须在启动heredoc之前执行这些操作,并将结果存储在可插入的变量中。 HEREDOC也可用于将长文本块直接分配给变量。htmlspecialchars()
,urlecncode()
,html_strip_tags()
等),而不必将值存储在中间变量中。它还会导致难以维护的代码,因为您的PHP现在通过html/javascript代码随机播放。这一切都归结为您正在使用的特定代码最简单的。
我花了一秒才明白为什么这些PHP标签看起来倒退了! – 2010-03-25 19:07:20
第二个PHP标记将在short_open_tag = 0的安装中中断。 '<?php'效果更好。 – fuxia 2010-03-25 19:21:55