直接保存用 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
(当然会替换变量)。
我正在使用 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
(当然会替换变量)。