ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PHP word导入题库

2021-04-08 18:33:57  阅读:370  来源: 互联网

标签:instanceof arr elements word temp v1 str 题库 PHP


public function index()
    {
        $url = public_path()."static/word.docx";
        $word_obj = new PhpWord();
        $sections = IOFactory::load($url)->getSections();
        $arr = [];
        foreach ($sections as $key => $val){
            $elements = $val->getElements();
            foreach ($elements as $k => $v){
                if($v instanceof TextRun){
                    $str = "";
                    $content_elements = $v->getElements();
                    foreach ($content_elements as $k1 => $v1){
                        if($v1 instanceof Text){
                            mb_convert_encoding($v1->getText(), 'UTF-8');
                            $str .=  $v1->getText();

                        }elseif ($v1 instanceof Image){
                            $imageDataTmp = $v1->getImageStringData(true);
                            $imageType = $v1->getImageType() ? $v1->getImageType() : 'image/jpg';
                            $imageData = 'data:' . $imageType . ';base64,' . str_replace(array("\r\n", "\r", "\n"), "", $imageDataTmp);
                            $imageSrc = './static/uploads/' . md5($v1->getSource()) . '.' . $v1->getImageExtension();
                            file_put_contents($imageSrc,base64_decode(explode(',',$imageData)[1]));
                            $str .= '<img src="'. $imageSrc .'" style="width:100%;height:auto">';
                        }
                    }
                    //echo $str."\n";
                    $first_str = mb_substr( $str, 0, 1, "UTF-8" );
                    if(preg_match("/^\d*$/",$first_str)){ //是数字
                        $temp = [];
                        $temp['title'] = $str; //题干
                    }elseif (preg_match('/[a-zA-Z]/',$first_str)){ //是字母
                        $temp['options'][] = $str; //选项
                    }else{ //是中文
                        $two_str = mb_substr( $str, 0, 2, "UTF-8" );
                        switch ($two_str){
                            case "答案":
                                $temp['aswer'] = $str;
                                break;
                            case "难度":
                                $temp['difficulty'] = $str;
                                break;
                            case "解析":
                                $temp['parse'] = $str;
                                array_push($arr,$temp);
                        }
                    }
                }

            }
        }
        print_r($arr);
    }

必须按照模板规则

标签:instanceof,arr,elements,word,temp,v1,str,题库,PHP
来源: https://www.cnblogs.com/finnlee/p/14633726.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有