有类似的问题(PHP:查找输出中相对路径的图像和链接并将它们转换为绝对路径),但我不确定它们是否解决了这个问题。
我正在开发一个jQuery插件,可以安装在任何目录中。它使用的图片也可以安装在任何目录中。图像的路径是在数据属性中设置的,如下所示:
<div id="pr-preview"
data-img-src="img/example.jpg"
data-savepath="img/resized/">
</div>
这是通过AJAX函数传递给PHP文件的。在我的PHP文件中,我需要获取图像的尺寸,如下所示:
list($width, $height) = getimagesize($this->data['img']);
但是显然我会收到一个错误:
getimagesize(img/example.jpg): failed to open stream: No such file or directory in ...
PHP文件调整图像大小,并需要将其保存到预定义的保存路径(data-savepath="img/resized/"
)。在这里我也会遇到同样的问题。
因此,考虑到我不知道这个插件在使用时将安装在哪里,我该如何确保这些路径是正确的?
如果可能,我想避免在数据属性中放置完整的路径。
更新
这是插件文件夹的结构。此文件夹可以安装在public_html
的任何位置。而图片目录也可以在任何地方:
public_html/
img/
example.jpg
pluginName/
css/
js/
php/
PluginName.php // where getimagesize() is called
realpath()
吗? - toesslabpathinfo()
来处理? - toesslabrealpath()
但没有成功 - 如果一开始就无法解析路径,我想这不会起作用。 - user3065931img
目录相对于您的 PHP 脚本,则可以定义一个常量define('IMAGE_PATH', __DIR__.DIRECTORY_SEPARATOR.'img/resized/');
。其中,__DIR__
将返回文件所在的目录,而不是调用脚本。 - frz3993PluginName.php
是从前端控制器(如index.php
)调用的,并且在data-img-src
中的路径是相对于前端控制器的,则在$this->data ['img']
前面连接“./”将解析文件。没有给出绝对路径,它需要相对于某些东西,对吧? - frz3993