Merged revisions 47488 via svnmerge from

svn://svn.silverstripe.com/silverstripe/modules/sapphire/branches/2.2.0-mesq

........
  r47488 | ischommer | 2007-12-21 16:03:04 +1300 (Fri, 21 Dec 2007) | 1 line
  
  in fileExists(): replace any appended query-strings, e.g. /path/to/foo.php?bar=1 to /path/to/foo.php
........

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@52186 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Ingo Schommer 2008-04-06 04:00:43 +00:00
parent 15b388640d
commit 2f51144a85
2 changed files with 33 additions and 0 deletions

View File

@ -413,6 +413,12 @@ class Director {
/** /**
* Given a filesystem reference relative to the site root, return the full filesystem path * Given a filesystem reference relative to the site root, return the full filesystem path
*/ */
/**
* Cleans up a given file-path
*
* @param string $file
* @return string
*/
static function getAbsFile($file) { static function getAbsFile($file) {
if($file[0] == '/') return $file; if($file[0] == '/') return $file;
return Director::baseFolder() . '/' . $file; return Director::baseFolder() . '/' . $file;
@ -423,6 +429,8 @@ class Director {
* @param $file Filename specified relative to the site root * @param $file Filename specified relative to the site root
*/ */
static function fileExists($file) { static function fileExists($file) {
// replace any appended query-strings, e.g. /path/to/foo.php?bar=1 to /path/to/foo.php
$file = preg_replace('/([^\?]*)?.*/','$1',$file);
return file_exists(Director::getAbsFile($file)); return file_exists(Director::getAbsFile($file));
} }

View File

@ -0,0 +1,25 @@
<?php
class DirectorTest extends SapphireTest {
public function testFileExists() {
$tempFileName = 'DirectorTest_testFileExists.tmp';
$tempFilePath = TEMP_FOLDER . '/' . $tempFileName;
// create temp file
file_put_contents($tempFilePath, '');
$this->assertTrue(
Director::fileExists($tempFilePath),
'File exist check with absolute path'
);
$this->assertTrue(
Director::fileExists($tempFilePath . '?queryparams=1&foo[bar]=bar'),
'File exist check with query params ignored'
);
unlink($tempFilePath);
}
}
?>