2011-07-07 138 views
5

在Windows資源管理器中,它們是一個摘要選項卡,其中包含每個文件的標題,主題,作者,類別,關鍵字和註釋。是否有可能使用PHP讀取和編輯這些數據?通過PHP訪問文件屬性

+1

每個文件類型的'metadata'存儲不同。你想從中獲取什麼樣的文件? – Grambot

+0

多種文件類型,包括一些專有的非標準格式。我的問題特別關注我可以通過屬性菜單的摘要選項卡在Windows XP中訪問的標題,主題,作者,類別,關鍵字和註釋屬性。 – James

+0

在這種情況下[這](http://stackoverflow.com/questions/6080319/where-does-windows-explorer-store-file-meta-data)可能是一個很好的起點。 – Grambot

回答

2

對於許多應用程序,您無法在Windows中使用PHP獲取有意義的元數據。唯一的例外是使用PHP的組件對象模型。

參考

http://www.php.net/manual/en/intro.com.php

下面是字的例子/ EXCEL:

// for MSExcel use: 
$objOfficeApp = new COM("excel.application") or die("unable to instantiate MSExcel"); 
// for MSWord use: 
//$objOfficeApp = new COM("word.application") or die("unable to instantiate MSWord"); 

$objOfficeApp->Workbooks->Open("c:\\temp\\test.xls"); 
//$objOfficeApp->Documents->Open("c:\\temp\\test.doc"); 

$objDocProps = $objOfficeApp->ActiveWorkBook->BuiltInDocumentProperties(); 
//$objDocProps = $objOfficeApp->ActiveDocument->BuiltInDocumentProperties(); 

$count = $objDocProps->count(); 

while($objDocProp = $objDocProps->Next()) { 
    print $objDocProp->Name() . ': ' . $objDocProp->Value() . "\n"; 
} 

unset($objDocProp); 
unset($objDocProps); 

$objOfficeApp->ActiveWorkBook->Close(); 
//$objOfficeApp->ActiveDocument->Close(); 
$objOfficeApp->Quit(); 
unset($objOfficeApp); 
+0

謝謝。這似乎工作。 – James