3

背景

我正在使用4D 服务器。4D 有一个内置的PHP 处理器,但方式很奇怪。我必须在我的网页中启动一个内联 4D 脚本,然后我必须调用PHP Execute,并给它一个.php文件的路径。

4D 脚本

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

我的PHP文件.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);
4

1 回答 1

2

您非常接近,您的语句中的分号位置错误return。尝试这个:

$isOK:=PHP Execute("";"eval";$result;"return 'Hello World';") 
于 2015-09-24T21:09:16.367 回答