1

我从以前的开发人员那里继承的 php 脚本遇到了问题。这是一个房地产公司的 WordPress 网站。有一个 php 脚本可以从其他公司提取房地产列表,每小时自动运行两次。还有一个插件可以在上传照片时在照片上添加水印。水印需要放在代理上传的照片上,而不是放在从 php 脚本中提取的照片上。

在 php 脚本的顶部,他定义了一个常量:

define('MLSP_SKIP_WATERMARK', true);

在水印插件中,他检查是否定义了常量:

if (!defined(MLSP_SKIP_WATERMARK)) {
    do watermarking stuff
}

它不识别插件中的常量,并在运行 php 脚本时为所有上传的图片添加水印。

我试图移动定义常量的位置。它位于文件顶部附近,而不是在函数中。它与WordPress有关吗?我发现了类似的问题,但没有给我答案。

有人可以指出我正确的方向吗?

4

1 回答 1

1

正如 PHP 文档所述,defined()接受一个表示常量名称的字符串,而不是常量本身。

http://php.net/manual/en/function.defined.php

例如,您的代码应该是:

if (!defined("MLSP_SKIP_WATERMARK")) {
    do watermarking stuff
}

因为您正在传递常量本身,所以该defined()函数返回 false,从而导致您的所有图像都被加水印。

于 2012-07-25T16:57:40.640 回答