获取word文档的内容,替换字符串并使用codeigniter php将数据作为word文档发送下载

时间:2013-08-23 05:52:54

标签: php codeigniter

public function sample($username = false) {
    $this->load->helper('download');
    $filename = base_url() . "resources/Sample-Letter.doc";

    $contents = file_get_contents($filename); // Read the file's contents

    if ($username) {
        $contents = str_replace('string_to_find', $username, $contents);
        // replace the string
    }
    $name = 'Sample-Letter.doc';

    force_download($name, $contents);
}

在此之后,文件被下载时包含损坏的数据和一些特殊字符,如 等等,就像在file_get_contents之后回显$ contents一样。 如果没有用户名传递给sample(),则下载可以与实际内容一起使用。

2 个答案:

答案 0 :(得分:0)

尝试

$ contents = str_replace('$ [Client name]',$ username,$ contents);

答案 1 :(得分:0)

你可以试试这个为我工作

$contents = str_replace('[Client name]', $username, $contents);    
$contents = preg_replace('/[^A-Za-z0-9\-]/', '', $contents);//it will remove all special characters from a string

然后尝试这个

'/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s' instead of '/[^A-Za-z0-9\-]/'