php getimagesize 路径,file_exists或getimagesize仅适用于本地绝对文件路径,但不适用于PHP中的URL...

我最近更新了我的一台服务器,从那以后,我遇到了一些特定

PHP命令的问题(见下文).我认为这是一个配置问题,但我已经研究了几件事,不知道任何进一步的事情.所以也许你们其中一个人有个好主意:

我使用以下代码以显示Intranet站点上的标准徽标或用户定义的徽标:

if(L_HEADER) {

$logo = L_HEADER;

}

else {

$logo = 'logo.png';

}

$properties = getimagesize(CONFIG_URL . 'images/' . $logo)

L_HEADER和CONFIG_URL是具有预定义值的常量(另一个文件):

> L_HEADER包含“opb_beta.png”

> CONFIG_URL包含“http://billing.intranet.opb/”

连接正常工作,这也由Apache日志文件的错误消息确认:

PHP Warning: getimagesize(07001): failed to open stream: HTTP request failed! HTTP/1.1 404 NOT FOUND

in /var/www/billing/templates/header.inc.php on line 42

所以第一个明显的结论是:路径是错误的.但它不是,相信我.我检查了1.000次.实际上,第一个好奇心是图像在同一文件的代码中进一步向下显示并正确引用了几行:

echo ''%20.%20%24logo%20.%20'

width="' . $properties[0] . '" height = "' . $properties[1] . '" />";

当我得到上面提到的错误时,高度和宽度都是“0”,但是查看源代码,URL很好,手动访问它会打开图像,当用手动值替换宽度和高度时,图像显示得很好.

虽然更加好奇(以及我当前的finx),当将getimagesize更改为以下内容时,它的工作正常:

$properties = getimagesize($_SERVER['DOCUMENT_ROOT'] . /public_html/images/' . $logo);

我会提到我正在使用Apache的重定向;这就是为什么在URL中你没有看到“public_html”,而在第二个例子的绝对路径中你确实看到了它.

“file_exists”也是如此. URL不起作用,同一文件的绝对本地路径.

另一个好奇心:在另一段代码中,我正在网上查看更新.在那里,我正在使用带有file_exists和fopen的“真实”公共URL.我看起来像这样,工作得非常好:

if(file_exists('http://desk.co.cr/df_stable.txt') {

if(($handle = fopen('http://desk.co.cr/df_stable.txt', 'r')) !== FALSE) {

// some other code

}

}

现在,我已经检查过的东西:

>对于整个路径,文件权限设置正确,www-data是所有文件的组和所有者,对图像文件具有读写访问权限

> allow_url_fopen设置为“On”.

> open_basedir设置为“无值”,并且Apache的虚拟主机定义中没有覆盖.

>文件确定存在且语法路径正确.

一些背景信息:

>服务器在Ubuntu 14.04 LTS上运行

> Apache 2.4.7

> PHP 5.5.9

现在,我没有想法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值