【发布时间】:2018-01-11 17:34:45
【问题描述】:
所以我有一个运行 windows 的服务器,它运行 PHP 环境来运行博客网站。
现在以下代码在我的本地主机上使用 xampp 运行良好,但在 windows 服务器上不起作用。
$image = get_the_post_thumbnail_url($postId, array(150,150));
$ext = pathinfo($image, PATHINFO_EXTENSION);
$base64 = 'data:image/' . $ext . ';base64,' . base64_encode(file_get_contents($image));
代码从循环中获取帖子缩略图并创建一个 base64 图像,我在模糊图像技术中使用它(就像前两个图像 on this site 发生的那样)
当我回显$ext 和$image 变量时,我得到了数据,但是当我回显file_get_contents($image) 时,我什么也得不到。我可以确认文件确实存在。
echo $ext . ':' . $image;
echo '<br />' . file_get_contents($image);
我遇到了对allow_url_fopen 的建议,但是当我通过回显phpinfo() 进行检查时,它已启用
echo phpinfo();
php 版本是 5.6,所以这也不是问题。
此外,当我为 windows 服务器打开 wordpress 调试时,我收到此错误:警告:file_get_contents(): php_network_getaddresses: getaddrinfo failed: No such host is known。
任何人都知道此 preblom 的其他潜在原因。 干杯
【问题讨论】:
-
$image变量中是否有有效的 url?该地址实际上是否存在域?该错误通常意味着 URL 不存在或找不到。 -
@JonathanKuhn 感谢您的帮助。图像确实存在。当我从图像变量复制输出并粘贴到我的浏览器中时,它可以工作
-
getaddrinfo是一个与 php 无关的系统函数,除了 php 像许多其他程序一样使用它。您可以从服务器 ping 域吗? -
如果你用谷歌搜索那个错误信息,就会出现很多堆栈问题。看起来他们中的大多数都指向 DNS 问题。这是一个看起来很受欢迎的:stackoverflow.com/questions/20064372/…
-
不,不是 DNS 问题,请参阅我的回答。我看了那些答案,但无济于事。感谢@JonathanKuhn 和 Don'tPanic 的帮助:)