Trouble editing Word document with PHP
- I want to open a word document and edit it
- I am opening the word document from the server and at that time it's opening with garbage values (perhaps it's not being properly converted to UTF-8).
- When I delete those garbage values and insert something from a textarea to that file it is going to insert and from then on it opens properly.
- I would like the document to open with the English words in the document instead of garbage value - it's only the first opening that's broken at present.
<?
$filename = 'test.doc';
if(isset($_REQUEST['Submit'])){
$somecontent = stripslashes($_POST['somecontent']);
// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {
// In our example we're opening $filename in append mode.
// The file pointer is at the bottom of the file hence
// that's where $somecontent will go when we fwrite() it.
开发者_开发知识库 if (!$handle = fopen($filename, 'w')) {
echo "Cannot open file ($filename)";
exit;
}
// Write $somecontent to our opened fi<form action="" method="get"></form>le.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Cannot write to file ($filename)";
exit;
}
echo "Success, wrote ($somecontent) to file ($filename) <a href=".$_SERVER['PHP_SELF']."> - Continue - ";
fclose($handle);
} else {
echo "The file $filename is not writable";
}
} else {
// get contents of a file into a string
$handle = fopen($filename, 'r');
$somecontent = fread($handle, filesize($filename));
?>
<h1>Edit file <? echo $filename ;?></h1>
<form name="form1" method="post" action="">
<p>
<textarea name="somecontent" cols="80" rows="10"><? echo $somecontent ;?></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
<?
fclose($handle);
}
?>
A Word document is not simply a text file, so you can't just write to it as you would write to a text file.
You might also take a look at the PHPWord project on codeplex, which is a library for writing word documents in pure PHP, without needing COM, although at the moment it only supports creating new word documents.
A Word document cannot simply be opened like a text file.
You can take a look at the article: Extracting text from Word Documents via PHP and COM by Akash Mehta.
精彩评论