База данных 4d — PHP использует ‘eval’ как функцию (получить возвращаемое значение)

Я использую 4D сервер. 4D имеет встроенный PHP процессор, но странным образом. Я должен запустить встроенный 4D-скрипт на своей веб-странице, затем я должен вызвать PHP Executeи дать ему путь .php файл.

4D Script

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("C:\\php\\myPHPFile.php";"my_function";$result)
ALERT($Result)

myPHPFile.php

<?php
function my_function() {
return 'Hello World';
}
?>

Цель

Я хочу иметь возможность написать это в моем веб-сайте:

<?php echo 'Hello World'; ?>

И обработать это. Я почти понял это. Если я сначала преобразую его через код сервера (4D может сделать это) в это:

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("";"echo 'Hello World'";$result)
ALERT($Result)

Вы должны иметь возможность запускать нативные функции PHP напрямую без .php файл. Вы думаете, это сработает. Оказывается, это не так.

Итак, я попробовал это:

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("";"echo";$result;"Hello World") // I can send parameters
ALERT($Result)

Все еще не работает. Оказывается, мне нужно оценить код с помощью функции.

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("";"eval";$result;"return 'Hello World;'") // I can send parameters
ALERT($Result)

Что ДОЛЖЕН отправить "return 'Hello World';" в eval(), Ну, это все еще не работает, потому что я узнал, что eval() на самом деле не функция Итак, что мне нужно знать, после всего этого фона, это:

Есть ли в PHP встроенная функция, которая бы работала так:

$evaulatedCode = eval($unEvaluatedCode);

2

Решение

Вы были довольно близко, у вас точка с запятой в неправильном месте в вашем return заявление. Попробуй это:

$isOK:=PHP Execute("";"eval";$result;"return 'Hello World';")
2

Другие решения

Других решений пока нет …