开发者

Trouble editing Word document with PHP

  1. I want to open a word document and edit it
  2. 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).
  3. 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.
  4. 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜