PHP: () diyor yok file_exists bir dosya dahil edilemiyor

1 Cevap php

Benim komut, ben, (yani uygulamanın başka bir bölümü de dosyaları içerebilir) bir dosya var olduğunu kontrol edin, ve de onu yolunu ayarlamak şunlardır.

Ben yolunu ayarlamak şunlardır Ancak, sonra, file_exists() dosyası yok bildiriyor, ama ben hala aynı dosyayı ekleyebilirsiniz.

<?php
  $include_path = realpath('path/to/some/directory');
  if(!is_string($include_path) || !is_dir($include_path))
  {
    return false;
  }
  set_include_path(
    implode(PATH_SEPARATOR, array(
      $include_path,
      get_include_path()
    ))
  );
  // Bootstrap file is located at: "path/to/some/directory/bootstrap.php".
  $bootstrap = 'bootstrap.php';

  // Returns "bool(true)".
  var_dump(file_exists($include_path . '/' . $bootstrap));
  // Returns "bool(false)".
  var_dump(file_exists($bootstrap));

  // This led me to believe that the include path was not being set properly.
  // But it is. The next thing is what puzzles me.

  require_once $bootstrap;
  // Not only are there no errors, but the file is included successfully!

Ben yolunu ve mutlak dosya yolunu vermeden dosyaları dahil düzenleyebilirsiniz, ama onlar değil var ya da kontrol edemez. Bu yok bir dosya denir her zaman, bir ölümcül hata benim, uygulama sonuçlarının, veya en azından bir uyarı (include_once() kullanarak) olarak gerçekten can sıkıcı bir durum.

Hataları ve uyarıları kapatma maalesef, bir seçenek değildir.

Herkes bu davranış neden olduğunu açıklayabilir misiniz?

1 Cevap

file_exists bir dosya CWD'sindeki göre yolu çözülmesi, mevcut (ve komut var biliyorum izin verilir) olmadığını söylemek başka bir şey yok. Bu ekleme yolu umurumda değil.