[英]Why won't this work in PHP?
$constPrefix = '_CONST_';
if (strstr($content, $constPrefix)) {
$constants = array('PHP_VERSION', '__FILE__');
foreach($constants as $constant) {
$constantOutput = eval($constant);
$content = str_replace($constPrefix . $constant, $constantOutput, $content);
}
}
基本上,只是尝试解析一些内容并用等效的PHP常量替换内部的字符串。 我应该在这里使用eval()
吗? 我以前从来没有真正找到使用它的理由,而且差不多凌晨1点了,我想知道这是不是巧合?
您可以使用常量替换eval
:
$constantOutput = constant($constant);
你为什么不放弃评估?
<?php
$v = PHP_VERSION;
$f = __FILE__;
echo $v.' '.$f;
?>
给
/tmp% php test.php
5.2.10-2ubuntu6.4 /tmp/test.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.