file_exists()不起作用

时间:2014-12-17 14:12:20

标签: php yii

我正在使用Yii 1.1.15并尝试使用简单的file_exists() php函数。但我无法让它发挥作用。

当我返回图片网址时,图片会显示。但是当我使用file_exists()时,它会返回$img2

在我的模型中的功能

 public function brandPageImage($make = false) {
        $urlstr = Yii::app()->request->baseUrl.'/images/brand-pages/make/';
        $img = $urlstr.trim(strtolower($make)).'-976x365.jpg';
        $img2 = $urlstr.'default-976x365.jpg';

        clearstatcache();

        if (file_exists($img)) return $img;

        return $img2;
 }

如果我直接返回$img就行了!

 public function brandPageImage($make = false) {
            $urlstr = Yii::app()->request->baseUrl.'/images/brand-pages/make/';
            return $img = $urlstr.trim(strtolower($make)).'-976x365.jpg';
     }

这是它生成的网址

/dev/frontend/www/images/brand-pages/make/lol-976x365.jpg

有人能帮帮我,不知道我在这里做错了什么。我在OSX上运行XAMMP 感谢

2 个答案:

答案 0 :(得分:1)

你应该使用getPathOfAlias而不是baseUrl,因为Yii :: app() - > request-> baseUrl返回基本URL,而不是文档根路径。

  if (file_exists(YiiBase::getPathOfAlias('webroot').'images/brand-pages/make/‌​
                 lol-976x365.jpg')) 
 { 
      // do what you want to do
 }

答案 1 :(得分:0)

尝试使用,因为它需要路径而不是图像所在的网址

 public function brandPageImage($make = false) {
        $urlstr = dirname(Yii::app()->request->scriptFile).'/images/brand-pages/make/';
        $img = $urlstr.trim(strtolower($make)).'-976x365.jpg';
        $img2 = $urlstr.'default-976x365.jpg';

        clearstatcache();

        if (file_exists($img)) return $img;

        return $img2;
 }