2017-10-02 17 views
0

PHPExcelを使用して、CSVファイルを解析してデータベースとサーバーに保存する前にCSVファイルを検証しています。私は、ファイルが変更されているかどうか、または元のファイルであるかどうかを判断するために、ファイルのプロパティを使用しようとしています。私は.xls、.xlsxのために次のものを使用しました。PHPExcelを使用して編集したCSVファイルを検出します

$file = $_FILES['file']['tmp_name']; 
    $reader = new PHPExcel_Reader_CSV(); 
    if($reader->canRead($file)){ 
     $object = $reader->load($file); 
     $created = $object->getProperties()->getCreated(); 
     $modified = $object->getProperties()->getModified(); 
     if(!$created===$modified){ 
      //File has been edited and cannot be used 
     }else{ 
      //File is good, continue processing 
     } 
    } 

しかし、CSVファイルを使用している場合、NOTHINGは期待どおりに動作しています。私はMS-Word文書を.csvに改名 - >合格、csv->合格、さらには.jpg->合格を使用して編集。私は行方不明ですか?どんな助けでも大歓迎です!編集 - >ファイルを編集して文書のプロパティ内の変更を確認したにもかかわらず、$created$modifedは完全に一致することに注意してください。var_dump($object)

+0

if文でタイプミスがあったと思います。それを '' $ created!== $ modified''と置き換えてみてください。 – Rulisp

+0

他のファイルタイプ(変数の完全一致を示す)を使ってメソッドを呼び出すときの形式は正しいです。 var_dump($ object)が呼び出されると、実際には 'created'と 'modified'の値が完全に一致します。私は元の投稿でそれを指定しておくべきだった。ただし、テストする前にファイルを変更しているときであってはなりません。 Windowsで観測されたファイルのプロパティは、異なる日付を正しく表示します。 –

答えて

0

PHPExcelからアクセスできるプロパティ値は、そのファイルのディレクトリエントリではなく、ファイル自体に格納されている値です。

CSVファイルには固有のプロパティがありません。 CSVは純粋に生データファイル形式です。これらのプロパティメソッドは、BIFF(xls)やOfficeOpenXML(xlsx)などの他のスプレッドシート形式に存在するプロパティにアクセスするためのものです。 PHPExcelにCSV(またはプロパティをサポートしない他の形式)をロードすると、それらのプロパティのデフォルト値が提供されます(作成しているような呼び出しで致命的なエラーが発生することはありません)が、実際の値は提供できませんロードされる形式でネイティブに存在しません。

+0

これは私の苦労を多く説明するでしょう。次に、編集したCSVを検出するためのメソッドやライブラリ(JS、PHP、JQuery、JSON ??)はありますか? –

+0

[filemtime](http://php.net/manual/en/function.filemtime.php)や[filectime()](http://php.net/manual/en/function.filectime)のようなネイティブPHP関数。 php)は、あなたのサーバに存在するファイルのために、フォルダ情報からタイムスタンプを読み込むために役立つはずです....しかし、アップロードされたファイルであれば、クライアント側で時刻を検出する必要があります。助け、何かが必要ですjs –

+0

私はあなたの答えマークを受け入れました。 PHPExcelはxls、xlsxなどから必要なデータを取得するのに優れていますが、そのデータはCSVには存在しません。私の問題の解決策としては、ソースからデータを抽出するJavaプログラムを作成し、それを暗号化してから、Webアプリケーションに提出してください。このようにして、ユーザーがデータを操作する機会を持たないようにすることができます。あなたの最後のコメントとJSの使用法に関しては、同じ問題が存在します。これは、Javaソリューションです。そして、私はハッピーデスティニーの道を歩き始める... –

関連する問題