Я пытаюсь создать файл и писать в него построчно. При попытке создать файл, используя имя файла из переменной, происходит сбой. но если я жестко закодирую имя файла, оно будет работать.
Отголоски:
Невозможно открыть / создать файл: CleanStatements \ Clean_IRS01HHTAX.TXT
Это работает:
if ($handle) {
$cleanFileHandle = fopen( "CleanStatements\\Clean_IRS01HHTAX.TXT", "w") or die("Unable to open/create file: ".$this->CleanFilePath);
while (($line = fgets($handle)) !== false) {
fwrite($cleanFileHandle, $line);
}
fclose($cleanFileHandle);
fclose($handle);
} else {
// error opening the file.
}
Это не
if ($handle) {
$cleanFileHandle = fopen( $this->CleanFilePath, "w") or die("Unable to open/create file: ".$this->CleanFilePath);
while (($line = fgets($handle)) !== false) {
fwrite($cleanFileHandle, $line);
}
fclose($cleanFileHandle);
fclose($handle);
} else {
// error opening the file.
}
Вот полный класс:
/**
* Class StatementFile
*/
class StatementFile
{
var $Name;
var $FilePath;
var $Type;
var $CleanFileName;
var $CleanFilePath;
function __construct($filePath){
$this->Name = basename($filePath).PHP_EOL;
$this->FilePath = 'Statements\\'.$filePath;
$this->Type = null;
$this->CleanFileName = "Clean_".$this->Name;
$this->CleanFilePath = "CleanStatements\\" . $this->CleanFileName;
}
function cleanStatement(){
$handle = fopen($this->FilePath, "r");
echo "Opening file: ".$this->FilePath ."<br/>";
if ($handle) {
$cleanFileHandle = fopen( $this->CleanFilePath, "w") or die("Unable to open/create file: ".$this->CleanFilePath);
while (($line = fgets($handle)) !== false) {
// process the line read.
// clean line here
fwrite($cleanFileHandle, $line);
}
fclose($cleanFileHandle);
fclose($handle);
} else {
// error opening the file.
}
}