直接保存用php生成的图像

时间:2015-08-31 11:37:16

标签: php file-get-contents file-put-contents

我使用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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

file_x_contents适用于实际路径,而img src适用于webpath。所以file_get_contents需要UNIX-Path。 编辑:正如评论中指出的那样,如果在php.ini中启用了URL,则可以使用URL