PHP exec() 无法分叉 base64 字符串?

问题描述 投票:0回答:0

我在 PHP 中使用 exec() 函数通过 CLI 运行 JavaScript 文件。 JavaScript 简单地使用 process.argv[n] 来获取从 exec() 传入的参数。

在传递其他参数时一切都按预期工作,但是,我想传递一个 base64 字符串作为参数。该字符串非常大,并通过警告破坏了 exec() 函数,让我知道该函数无法分叉。

这可能与内存限制有关吗?我不确定如何解决这个问题。

这里是相关程序的整个 PHP 部分:

<?php
$path = './exampleDir/example.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = base64_encode(file_get_contents($path));
$base64 = "data:image/".$type.";base64,".$data;

$cfPage = "index";
$iwidth = "400";
$iheight = "425";
$iaspect = $iwidth/$iheight;

exec("node ./scripts/test.js ".$cfPage." ".uniqid()." ".$iaspect." ".$base64);
?>

我试过将长度小于 100 个字符的简单字符串传递到 exec() 中,它传递得很好。我相信字符串的长度是问题所在,也许这与内存限制有关?

php
© www.soinside.com 2019 - 2024. All rights reserved.