Php 在Drupal7中,如果图像不存在,我可以更改输出吗?

Php 在Drupal7中,如果图像不存在,我可以更改输出吗?,php,drupal,drupal-7,Php,Drupal,Drupal 7,我在Drupal7中有一组文章,每个文章都有一个图像字段。如果我从FTP中删除了一个图像,或者它已损坏,或者由于某种原因它不在它认为的位置,该站点将显示alt文本并显示为已损坏。在这种情况下,我想告诉Drupal做一些其他事情,比如显示“填充”或“默认”图像。有办法吗 我试着用php编写“if file exists”语句,但它不允许我编写。我尝试添加了一个if-no-output的例子,但这只适用于空输出,而不适用于指向无效文件的输出。在我的研究中,我还没有发现任何其他东西可以让我在Drupa

我在Drupal7中有一组文章,每个文章都有一个图像字段。如果我从FTP中删除了一个图像,或者它已损坏,或者由于某种原因它不在它认为的位置,该站点将显示alt文本并显示为已损坏。在这种情况下,我想告诉Drupal做一些其他事情,比如显示“填充”或“默认”图像。有办法吗

我试着用php编写“if file exists”语句,但它不允许我编写。我尝试添加了一个if-no-output的例子,但这只适用于空输出,而不适用于指向无效文件的输出。在我的研究中,我还没有发现任何其他东西可以让我在Drupal中实现这一点

请注意,当没有提供图像时,这不是一个操作。这适用于提供图像但图像不存在的情况。我希望该网站能够优雅地失败

谢谢!
Brendan

在hook\u field\u display\u alter中,您可以检查文件是否存在,并在template\u preprocess\u节点中显示默认图像。将图像变量的uri值传递给。这将获得图像的绝对路径

然后使用PHP函数验证其是否存在图像路径。将其分配给变量$variables[image\u exists]=文件\u exists$image\u path

然后在节点文章模板文件中:

if ($image_exists) {
    // render $content['field_image']
} else {
    // render some other markup
}

在这种情况下,这个钩子可以帮助您,但您仍然需要检查php文件是否存在。请查看及其选项