1
サーバ上にあるmswordファイルがあります。クライアントシステムのmswordファイルをmswordで強制的に開きます。
私は、ユーザーが開こうとしたときに、自分のコンピュータでmsword で直接開きます。です。
<?php
$document ='MyWordDocument.docx';
/**Function to extract text*/
function extracttext($filename)
{
//Check for extension
$ext = end(explode('.', $filename));
//if its docx file
if($ext == 'docx')
$dataFile = "word/document.xml";
//else it must be odt file
else
$dataFile = "content.xml";
//Create a new ZIP archive object
$zip = new ZipArchive;
// Open the archive file
if (true === $zip->open($filename)) {
// If successful, search for the data file in the archive
if (($index = $zip->locateName($dataFile)) !== false) {
// Index found! Now read it to a string
$text = $zip->getFromIndex($index);
// Load XML from a string
// Ignore errors and warnings
$xml = DOMDocument::loadXML($text, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
// Remove XML formatting tags and return the text
return strip_tags($xml->saveXML());
}
//Close the archive file
$zip->close();
}
// In case of failure return a message
return "File not found";
}
echo extracttext($document);
私は上記のコードを試しましたが、このコードはブラウザでコンテンツを読み取り表示します。 PHPを使用してこれを達成できますか?
これはあなたが制御できません。ブラウザでコンテンツを表示しなくても(おそらくWordプラグインを使用しているので、基本的にはWordで、一部のツールバーは隠している)、ファイルは単にダウンロード用に提供されます。ユーザーに強制的にダウンロードさせることはできません。そうした場合は、強制的に開くことはできません。ブラウザがランダムなファイルをディスクに強制的にダウンロードして開く可能性があり、ウィルスがどこにでも存在する可能性がある場合、セキュリティ上のリスクがあると考えてください。あなたが今持っている解決策は、実際にはおそらく最も使いやすいでしょう。 – ADyson
N.B.ブラウザにWordファイルを表示するための互換プラグインがインストールされていないユーザーは、自動的に表示する代わりにダウンロードプロンプトが表示されている可能性があります。一部のブラウザChromeは、提供されているファイルを自動的にダウンロードするように設定することもできます。多分あなたもそれを開くように設定することができます、私は知らない。しかし、これは危険にさらされているセキュリティのため、個々のユーザーの自由裁量に基づいています。あなたのサーバー側のコードは、ファイルに何が起こるかについては何の言い方もしていません。 – ADyson