0

特定の html ファイルが存在するかどうかを確認する php スクリプトを作成したいと考えています。存在しない場合は、新しいものを作成して名前を付けます。

以下のコードを試しましたが、まだ動作しません。

$file = file_get_contents(site_url('appraisal/createReport'));      
$filename = 'Service_delivery_report_'.date('Y-m-d', time()).'.html';
$filepath = dirname(__DIR__).'/views/sd_reports/'.$filename;
write_file($filepath, $file);
4

4 に答える 4

2
if(! file_exists ($filename))
  {
  $fp = fopen($filename, 'w');
  fwrite($fp,  $file);
  fclose($fp);
  }
于 2013-10-16T11:56:22.433 に答える
1

あなたが使用している「site_url」と呼ばれる方法に慣れていません。簡単なグーグル検索から、ワードプレスの方法のように見えます。site_url メソッドを無視して、たとえばhttp://ted.comなどの特定の URL を使用してテストすることをお勧めします。file_exists ではなく is_file を指定しました。これは、指定したパスがディレクトリであっても file_exists が true を返すのに対し、is_file はパスが実際のファイルである場合にのみ true を返すためです。$site 変数をサイト URL またはファイルへのパスに設定して、このコードを試してください。

$site の内容を読み込もうとする前に、まずファイルが存在するかどうかを確認するために、いくつかのコードを切り替えました。このように、ファイルが既に存在する場合、$site の内容を不必要に読み取ることはありません。

$filename = "Service_delivery_report_" . date("Y-m-d",
                                              time()). ".html";

$filepath = realpath("./") . "/views/sd_reports/" . $filename;

if (!is_file($filepath))
{
    $site = "http://somesite.com/somepage";

    if ($content = file_get_contents($site))
    {   
        file_put_contents($filepath,
                          $content);    
    }
    else
    {
        echo "Could not grab the contents of some site";
    }
}
于 2013-10-16T12:54:51.907 に答える
0

使用するfile_exists();

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}
?>

次に、存在しない場合はfopen();、次のようにでファイルを作成します。

$handle = fopen($filename, "w");
于 2013-10-16T11:57:21.127 に答える
0

これを試して

$file = file_get_contents(site_url('appraisal/createReport'));      
$filename = 'Service_delivery_report_'.date('Y-m-d', time()).'.html';
if(! file_exists ($filename))
{
$f = fopen($filename, "w");
fwrite($f,  $file);
fclose($f);
}
else
echo "file already exist";
于 2013-10-16T11:57:59.707 に答える