PHP 回声与 PHP 短回显标签
它们在安全性上是否相等?我被告知使用
<?=$function_here?>
不太安全,并且它减慢了页面加载时间。我严格偏向于使用echo。
有哪些优点/缺点?
它们在安全性上是否相等?我被告知使用
<?=$function_here?>
不太安全,并且它减慢了页面加载时间。我严格偏向于使用echo。
有哪些优点/缺点?
首先,不是一个简短的开放标签,而是一个速记回声,这与.而且它不能被禁用。因此,使用起来很安全,因为它始终处于启用状态。<?=
<?php echo
从安全性方面说到安全性,输出必须始终根据输出介质规则进行编码。
例如,在 HTML 中回显数据时,它必须采用 html 编码:
<?= htmlspecialchars($function_here, ENT_QUOTES) ?>
或者,当在JavasScript中回显数据时,它必须是javascript编码的:
<script>var=<?= json_encode($function_here) ?>
或者,当同时是 HTML 和 JS 时,必须同时使用这两种编码:
<?php foreach($links as $label => $url): ?>
<br>
<form method="post">
<button class="my" onclick="<?=htmlspecialchars("window.open(".json_encode($url).")", ENT_QUOTES) ?>">
<?=htmlspecialchars($label, ENT_QUOTES) ?>
</button>
</form>
<?php endforeach ?>
说到短开放标签,只有一个,并且它并不总是启用(请参阅short_open_tag
指令)。<?
实际上,在 PHP 5.3.0 提供的 php.ini 生产文件中,默认情况下它们处于禁用状态:
$ grep 'short_open' php.ini-production
; short_open_tag
short_open_tag = Off
因此,在要分发的应用程序中使用它们可能不是一个好主意:如果不启用它们,您的应用程序将无法正常工作。
<?php
,在另一边,不能禁用 - 所以,使用这个是最安全的,即使它写得更长。
Echo通常只是更好地使用,因为...
但是,它们通常是相同的。另请参阅: