Почему это не работает в PHP? - PullRequest
       32

Почему это не работает в PHP?

3 голосов
/ 24 февраля 2010
$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() что я должен использовать здесь?На самом деле я никогда не нашел причины использовать его раньше, а сейчас почти час ночи, и мне интересно, это совпадение?

Ответы [ 2 ]

10 голосов
/ 24 февраля 2010

Вы можете заменить eval на константу :

$constantOutput = constant($constant);
0 голосов
/ 24 февраля 2010

Почему бы тебе просто не пропустить eval?

<?php
    $v = PHP_VERSION;
    $f = __FILE__;

    echo $v.' '.$f;
?>

дает

/tmp% php test.php 
5.2.10-2ubuntu6.4 /tmp/test.php
...