我想知道在PHP中插入文本是否有更短的方法
This website is a funky guide to !!!
例如,在轨道上使用ruby,我可以设置
city = 'London'
在代码中的某个地方,在我的.erb文件中,我可以做到
This website is a funky guide to <%= city %>!!!
我确实阅读过{$city}
可以使用的地方,但我尝试了它并没有.那么是否有比较短的形式?
您可以使用short_open_tag
,必须在您的配置中启用,但这不被认为是一种好的做法,因为它只有在启用时才有效 - 并且它们并非总是(默认情况下可能不是)
使用长标签和回声/打印可能会更长,是的...但我建议使用那些,而不是短标签.
另请注意,当数据来自不受信任的来源和/或可能包含您不希望在页面中注入的HTML时,您可能需要转义数据,以避免注入HTML/JS (请参阅htmlspecialchars):
在评论之后编辑,添加几件事short_open_tag
:
为什么考虑短开标签(至少我是^^)不良做法?
首先,经过一些检查后,默认情况下不会启用它们:
对于PHP 5.3:
squale@shark:~/temp/php/php-5.3.0 $ grep 'short_open_tag' php.ini-development ; short_open_tag short_open_tag = Off squale@shark:~/temp/php/php-5.3.0 $ grep 'short_open_tag' php.ini-production ; short_open_tag short_open_tag = Off
默认情况下在" development
"或" production
"设置中禁用.
对于PHP 5.2.10 (最新版本的PHP 5.2):
squale@shark:~/temp/php/php-5.2.10 $ grep 'short_open_tag' php.ini-dist short_open_tag = On squale@shark:~/temp/php/php-5.2.10 $ grep 'short_open_tag' php.ini-recommended ; - short_open_tag = Off [Portability] short_open_tag = Off
默认情况下在" recommended
"设置中禁用
考虑到这些默认设置有时(通常是?)由托管服务保留,依赖于short_open_tag
激活是危险的.
(我自己遇到了被禁用的问题......当你不是服务器的管理员并且没有必要的特权来修改它时,它并不好玩^^)
如果你想要一些数字,你可以看一下Quick survery:short_open_tag
默认支持on或off?
(不是科学证明 - 但表明将它们用于您向公众发布的应用程序可能很危险)
就像你说的那样,那些在激活时会与XML声明冲突 - 意味着你必须使用这样的东西:
'; ?>
考虑到存在短暂打开的标签,并且可能会在您将使用的服务器上激活,但您应该可能永远不会使用; 太糟糕了:-(
实际上,阅读PHP 5.2.10推荐的php.ini:
; Allow the tag. Otherwise, only tags are recognized. ; NOTE: Using short tags should be avoided when developing applications or ; libraries that are meant for redistribution, or deployment on PHP ; servers which are not under your control, because short tags may not ; be supported on the target server. For portable, redistributable code, ; be sure not to use short tags.
PHP 6中的那个更有趣:
; This directive determines whether or not PHP will recognize code between ; and ?> tags as PHP source which should be processed as such. It's been ; recommended for several years that you not use the short tag "short cut" and ; instead to use the full tag combination. With the wide spread use ; of XML and use of these tags by other languages, the server can become easily ; confused and end up parsing the wrong code in the wrong context. But because ; this short cut has been a feature for such a long time, it's currently still ; supported for backwards compatibility, but we recommend you don't use them.
(在PHP 5.3中可能相同;没有检查)
有传言说可以从PHP 6中删除短开标签; 考虑到我刚刚发布的php.ini部分,它可能不会...但是,仍然......
为了给出一个指向另一个方向的论据(毕竟我必须诚实):对模板文件 使用短开放标签(仅限)通常在Zend Framework的使用模板文件的示例中完成:
在我们的示例和文档中,我们使用PHP短标记:
也就是说,许多开发人员更喜欢使用完整标签来验证或移植.例如,在php.ini.recommended文件中禁用了short_open_tag,如果在视图脚本中模板化XML,则短打开标记将导致模板验证失败.
(来源)
相反,对于.php
文件:
永远不允许使用短标签.对于仅包含PHP代码的文件,必须始终省略结束标记
(来源)
我希望这些信息是有用的,并为你的评论带来某种答案:-)