直接保存用 php 生成的图像

Directly save image generated with php

我正在使用 php 脚本生成 Identicons。 使用 <img> 显示结果很好

$input="create_image/identicon.php?size=48&hash=$hashvalue";
$output=$username."_userimage.png";

这个有效:

echo "<img src='$input'>";

但这不会:(它只是创建一个空文件)

file_put_contents($output, file_get_contents($input));

并抛出一个 no such file or directory 异常,尽管它与用于显示图像的 src 属性 相同 url。

这样保存有什么问题吗?

我不确定问题是 file_put_contents 还是 file_get_contents

试试这个 imagepng($input, $output); 而不是 file_put_contents

file_x_contents 使用真实路径,而您的 img src 使用 webpath。所以 file_get_contents 需要 UNIX 路径。 编辑: 正如评论中指出的那样,如果在 php.ini

中启用,则可以使用 URL

您可以使用 file_get_contents() 从文件系统或通过 HTTP 从远程主机加载文件。但是您需要提供 PHP 完整的 url 才能使用 HTTP 功能(php.ini 也需要允许这样做)。否则它会在文件系统上逐字搜索文件 create_image/identicon.php?size=48&hash=$hashvalue(当然会替换变量)。