PHP explosion()必须是字符串类型



我通过这种方式获得图像的平均颜色:

exec('magick "' . $tempCut . '" -resize 1x1! -format "%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]" info:-', $col, $return_var);
file_put_contents($root . '/wth.txt', $col);
$arr = explode(',', $col);

wth.txt包含这个字符串:

15,81,139

但是爆炸给出了致命的错误,它必须是一个字符串,即使它是一个??

这里有什么问题,如何解决这个问题?

根据https://www.php.net/manual/en/function.exec.php exec输出参数为数组:

If the output argument is present, then the specified array will be filled with every line of output from the command. Trailing whitespace, such as n, is not included in this array. Note that if the array already contains some elements, exec() will append to the end of the array. If you do not want the function to append elements, call unset() on the array before passing it to exec().

所以,$col是一个数组而不是字符串。如果您确定要查找的字符串位于输出的第一行,则以下操作应该可以工作:

exec('magick "' . $tempCut . '" -resize 1x1! -format "%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]" info:-', $col, $return_var);
file_put_contents($root . '/wth.txt', $col);
$arr = explode(',', $col[0]);

希望这对你有帮助。👍

相关内容

  • 没有找到相关文章