У меня есть такая функция:
public function asset_exists($path)
{
$webRoot = realpath($this->kernel->getRootDir() . '/../web/');
$toCheck = $webRoot . $path;
if (!file_exists("/Users/mtmac/app/app-web/web/uploads/clients/5b7e824a97ba4.jpeg"))
{
return false;
}
return true;
}
Все работает хорошо, когда я помещаю значение в виде строки в функцию file_exists.
ПРОБЛЕМА: когда я изменяю условное IF
if (!file_exists($toCheck))
{ return false; }
Я всегда получаю возвращаемое значение FALSE из этого условия.
ПРИМЕЧАНИЕ :
а. Образ существует на диске
б. Значение параметра $toCheck равно
.
/Users/mtmac/app/app-web/web/uploads/clients/5b7e824a97ba4.jpeg






Заявление об ограничении ответственности: Я не разработчик PHP. Отвечая на этот вопрос, потому что я нашел это интересным и подумал о том, чтобы покопаться.
Теперь проблема, с которой вы столкнулись, похоже, связана со значением php include_path, установленным в файле .htaccess.
Вот комментарий на php.net о подобной проблеме. http://php.net/manual/en/function.file-exists.php#49805
Вот несколько выдержек из упомянутого мной комментария:
I spent the last two hours wondering what was wrong with my if statement: file_exists($file) was returning false, however I could call include($file) with no problem.
It turns out that I didn't realize that the php include_path value I had set in the .htaccess file didn't carry over to file_exists, is_file, etc.
Надеюсь это поможет!