我有一个红宝石文件,即sample.rb。我想从我的表单中执行它,实际上我的 ruby 代码在执行时将写入 html 文件。所以我需要做的是当我单击表单中的按钮时,它应该执行 ruby 代码,然后它必须打开来自在我的表单中的一个框架中执行的 html 文件。可能吗?如果可能的话!怎么办?
我尝试的是
<?php
exec("./sample.rb")
?>
但它所做的是。它只是获取我在 ruby 代码中使用的 api 的 url,并从该 API 返回 json。
也许你应该为这个 http://rubyonrails.org 使用导轨
您正在将sample.rb
作为外部命令调用,就像任何其他 shell 脚本一样。因此,您必须自己捕获和处理其输出。
你说"它从 API 返回 JSON"。没关系,您可以提取您感兴趣的数据,例如:
<?php
$json = exec("./sample.rb");
$data = json_decode($json);
$url = $data->url; # assuming there is an URL field
?>
现在,您可以例如输出一个链接:
<a href="<?php echo $url ?>">click</a>
或者生成一些JavaScript:
<script>
window.location.href="<?php echo $url ?>";
</script>
或通过 HTTP 标头重定向用户:
<?php
header("Location: $url");
?>