当前位置: 首页 > news >正文

云浮市住房和城乡建设局网站企业微信登录网页版

云浮市住房和城乡建设局网站,企业微信登录网页版,常州兼职网站建设,cms系统模板因工作需要#xff0c;使用了版本比较旧的PHPWord项目官方已不见维护更新#xff0c;上次版本更新是在Fri Jul 8, 2011 at 8:00 AM如果PHP版本5.3.3#xff0c;强烈推荐使用PHPOffice/PHPWord这个开源项目本篇针对的为旧版本的PHPWord基本安装问题总结Autoloader自动加载…因工作需要使用了版本比较旧的PHPWord项目官方已不见维护更新上次版本更新是在Fri Jul 8, 2011 at 8:00 AM如果PHP版本5.3.3强烈推荐使用PHPOffice/PHPWord这个开源项目本篇针对的为旧版本的PHPWord基本安装问题总结Autoloader自动加载部分情况下失败在使用Yii 1配置自动加载时无法正常加载类库需对其PHPWord/Autoloader.php做部分调整这儿借鉴了PHPExcel的Autoloader:/*** PHPWord_Autoloader*/class PHPWord_Autoloader{/*** Register the Autoloader with SPL**/public static function Register() {$functions spl_autoload_functions();foreach ( $functions as $function)spl_autoload_unregister($function);$functions array_merge(array(array(PHPWord_Autoloader,Load)),$functions);foreach ( $functions as $function)$x spl_autoload_register($function);return $x;} // function Register()/*** Autoload a class identified by name** param string $pClassName Name of the object to load*/public static function Load($pClassName){if ((class_exists($pClassName,FALSE)) || (strpos($pClassName, PHPWord) ! 0)) {// Either already loaded, or not a PHPWord class requestreturn FALSE;}$pClassFilePath PHPWORD_BASE_PATH .str_replace(_,DIRECTORY_SEPARATOR,$pClassName) ..php;if ((file_exists($pClassFilePath) FALSE) || (is_readable($pClassFilePath) FALSE)) {// Cant loadreturn FALSE;}require($pClassFilePath);} // function Load()}模板替换时无法识别模板标签表现使用/复制官方样例的模板文件替换正常自己手动敲出模板标签替换异常原因PHPWord的替换规则是将Word文件解析成XML进行替换处理当Word解析成XML时字符分离了导致匹配不上模板标签具体分析可参考一下资料解决办法改进Template类可参考Github: Arisse/PHPWord_CloneRow对Template类进行改造。因为下面仍需要修改Template类这儿暂时就不贴代码了下面一并贴出改造后的代码。中文乱码编辑PHPWord/Template.php找到代码$replace utf8_encode($replace);删除或者注释掉这行代码添加$replace iconv( gbk,utf-8, $replace);比如代码改为如下/*** Set a Template value** param mixed $search* param mixed $replace*/public function setValue($search, $replace) {if(substr($search, 0, 2) ! ${ substr($search, -1) ! }) {$search ${.$search.};}if(!is_array($replace)) {//$replace utf8_encode($replace);$replace iconv(gbk, utf-8, $replace); // 注释掉上面行后添加这行}$this-_documentXML str_replace($search, $replace, $this-_documentXML);}空格输出在想要输出换行的地方用代替即可.标记符号输出参考百度经验: 如何在word中选择打钩的方框仅以输出□和☑为例其它符号与之类似。注PHP文件需要使用UTF-8编码在Word文件中按照参考文件方式插入☑复制符号到PHP文件正常的输出替换。具体代码见如下的项目代码。Template类代码// code/*** Set a Template value** param mixed $search* param mixed $replace*/public function setValue($search, $replace, $limit-1) {if(substr($search, 0, 1) ! { substr($search, -1) ! }) {$search {.$search.};}if(!is_array($replace)) {// $replace utf8_encode($replace);// $replace iconv( gbk,utf-8, $replace);$replace str_replace(\n,,$replace);}preg_match_all(/\{[^}]\}/, $this-_documentXML, $matches);foreach ($matches[0] as $k $match) {$no_tag strip_tags($match);if ($no_tag $search) {$match {.$match.};$this-_documentXML preg_replace($match, $replace, $this-_documentXML, $limit);if ($limit 1) {break;}}}}// code项目代码// author Heier xheieroutlook.compublic function actionExportPersonTable() {// 获取数据部分代码// ...$PHPWord new PHPWord();// Word模板目录$personBasePath Yii::app()-basePath./person/;// 删除目录下临时文件-十分钟以前$this-delfile( $personBasePath, 10 );// 模板文件名$tempName $personBasePath . /moban.docx;$word $PHPWord-loadTemplate( $tempName );// 项目使用的是GBK编码需要做转换$username iconv(gbk, utf-8, getUserNameById($personData[0][user_id]) );$personal_type $personData[0][personal_type];// 模板替换开始// 可以输出打勾的方框$deptA$deptBP$deptB$deptC$deptD □;if( $DirectorLevel A ) {$deptA ☑;} elseif( $DirectorLevel B ) {$deptBP ☑;} elseif( $DirectorLevel B ) {$deptB ☑;} elseif( $DirectorLevel C ) {$deptC ☑;} elseif( $DirectorLevel D ) {$deptD ☑;}$word-setValue(deptA, $deptA);$word-setValue(deptBP, $deptBP);$word-setValue(deptB, $deptB);$word-setValue(deptC, $deptC);$word-setValue(deptD, $deptD);// 设置其它替换// ...// 生成临时文件以供下载$tmpFileName md5( time().Heier );$word-save($personBasePath . / . $tmpFileName ..docx);$file $personBasePath . / . $tmpFileName ..docx;// 下载Word文件ob_start(); //打开缓冲区$fp fopen($file,r);$file_size filesize($file);$downFileName XXX.docx;header(Cache-Control: public);header(Content-type: application/octet-stream);header(Accept-Ranges: bytes);header(Content-Disposition: attachment; filename{$downFileName});header(Pragma:no-cache);header(Expires:0);$buffer 1024;$file_count 0;//向浏览输出回数据while(!feof($fp) $file_count $file_size){$file_con fread($fp,$buffer);$file_count $buffer;echo $file_con;}ob_end_flush();//输出全部内容到浏览器}参考文档汇总关于我
http://www.pierceye.com/news/87405/

相关文章:

  • 赣州有没有做网站的注册域名后网站建设
  • 网站建设 工作职责wordpress实现新闻列表
  • 深圳专业做网站的公司哪家好wordpress 微博同步插件
  • seo网站优化公司网站设计的尺寸
  • 中山网站建设文化教程学院网站建设服务宗旨
  • 网站权限怎么设置遵义市建设局网站官网
  • 昆明做网站公司有哪些怎么样制作自己的网站
  • 商业型网站天元建设集团有限公司2008年招聘
  • 广西住建厅八大员报名网站永久免费进销存管理软件手机版
  • 织梦怎么做网站地图seo网站平台
  • 网站建设低价网站到底便宜在哪建立免费网站的步骤
  • 适合用struts2做的网站个人建站做什么网站比较赚钱
  • 免费建设一个网站百度网盘免费下载
  • 上传网站到虚拟主机教育机构举报电话
  • 电子商务网站建设题库那个网站直接回做二手发电机
  • 网站制作熊猫建站建设部网站材料价格上涨规定
  • 化妆品网站 源码山西省建设厅政务中心网站
  • 青岛网站建设报价青岛建设工程信息网站
  • html5个人博客网站模板wamp搭建多个网站
  • 网站开发需求报告想搞网站建设
  • 惠安建设局网站网站开发和网页开发有什么区别
  • 网站关键词优化效果建个企业网站多少钱
  • 建站哪个平台好用浙江网站建设公司
  • 如何查看网站权重石狮网站
  • 大公司做网站的优势网站建设费怎么记账
  • 网站代备案多少钱档案信息网站开发利用
  • 门户网站重要性c2c网站名称和网址
  • 北京智能模板建站wordpress七牛云加速
  • 合肥哪家网站公司好文章列表页wordpress
  • 乐山做网站的公司wordpress新增站点