PHP Customer Function

来源:互联网 发布:prod.server.js 编辑:程序博客网 时间:2024/05/16 10:16
// 修改字体文件名中的特殊字符 start$path = "/usr/share/nginx/font/wp-content/data-deal/font-file-extract";if($dh = opendir($path)){    $i = 0;    $path_arr = array();    $font_type = array('.ttf','.TTF','.OTF','.otf');    while (($file = readdir($dh)) !== false){        if($file=="." || $file=="..") continue;        $tmp_dir = $path."/".$file;        $path_arr[] = $tmp_dir;    }    closedir($dh);     if(!empty($path_arr)){        foreach($path_arr as $val){            $i+=1;            $cc = getFile($val);            $aa = '';            $f_new = $val;            $val_o = $val;            foreach($cc as $key){                $key = str_replace('-----', '', $key);                if(strpos($key,' ')!==false||strpos($key,',')!==false||strpos($key,'&')!==false||strpos($key,"'")!==false||strpos($key,"(")!==false||strpos($key,")")!==false||strpos($key,"!")!==false){                    $type = strrchr($key,'.');                    if(in_array($type,$font_type)){                        $f_new .= '/'.sanitize_title(str_replace($type, '', $key)).$type;                    }else{                        $f_new .= '/'.sanitize_title($key);                    }                }else{                    $f_new .= '/'.$key;                }                $val_o .='/'.$key;                if($val_o!=$f_new){                    if(is_dir($val_o)){                        $flag = rename($val_o,$f_new);                    }elseif(is_file($val_o)){                        $flag = rename($val_o,$f_new);                    }                    if($flag){                        $val_o = $f_new;                        echo 'yes<br>';                    }else{                        echo $val_o."<br>";                    }                }            }        }        echo $i;    }   }// 修改字体文件名中的特殊字符 end//获取指定类型文件在文件夹中的位置 startfunction getFile( $dir, $fileArray=array(),$dir_o='',$floder_arr =array()){    if($dir_o==''){        $dir_o = $dir;    }    $font_type = array('.ttf','.TTF','.OTF','.otf');    $prefix_arr = array('.','_');    if($dh = opendir($dir)){        while (($file = readdir($dh)) !== false){            if($file=="." || $file=="..") continue;            $tmp_dir = $dir."/".$file;            $file_type = strrchr($file,'.');            $tr_floder = basename($dir).'-----';            if(!(is_dir($tmp_dir))&&in_array($file_type,$font_type)&&!in_array(substr($file, 0,1),$prefix_arr)){                if( ( !empty($fileArray)||$dir!=$dir_o )){                    $fileArray[] = $tr_floder;                }                $fileArray[] = $file;                return $fileArray;                                     }elseif(is_dir($tmp_dir)){                if( $dir != $dir_o){                    $fileArray[] = $tr_floder;                }                $floder_arr[] = $file;             }        }        if(!empty($floder_arr)){            foreach($floder_arr as $floder){                if(!empty($fileArray)){                                if(in_array(strrchr(end($fileArray),'.'),$font_type)&&!in_array(substr(end($fileArray), 0,1),$prefix_arr)){                        break;                    }                }                $tr_path = $dir.'/'.$floder;                $file_arr = scandir($tr_path);                 $file_count = count($file_arr)-2;                if($file_count>0){                    $fileArray = getFile($tr_path,$fileArray,$dir_o);                    if(!empty($fileArray)){                        if(is_file($tr_path.'/'.end($fileArray))){                            return $fileArray;                         }                    }                }               }           }else{            $fileArray=array();        }        closedir($dh);     }    return $fileArray; }//获取指定类型文件在文件夹中的位置 end//  文件和文件夹中空格替换 start$source_path = '/usr/share/nginx/';if($dh = opendir($source_path)){    $flo_arr = array();    while (($file = readdir($dh)) !== false){        if($file=="." || $file=="..") continue;        $flo_arr[] = $file;    }    foreach($flo_arr as $floder){        $floder_path = $source_path.$floder;        if($dh = opendir($floder_path)){            while (($file = readdir($dh)) !== false){                if($file=="." || $file=="..") continue;                $file_new = str_replace(' ','-',$file);                $flag = rename($floder_path.'/'.$file,$floder_path.'/'.$file_new);            }        }        $flag = rename($floder_path,str_replace(' ','-',$floder_path));    }}//  文件和文件夹中空格替换 end//pdf 转换 doc html png start$source_path = '/usr/share/nginx/thinkphp_job_application_online_28_13/ja_resume/';// $out_html_path = 'ja_resume_html/';$out_png_path = 'ja_resume_png/';$out_doc_path = '/usr/share/nginx/thinkphp_job_application_online_28_13/ja_resume_doc/';// $flag = pdf2html($source_path, $out_html_path, $superfix = 0);if($dh = opendir($source_path)){    $flo_arr = array();    while (($file = readdir($dh)) !== false){        if($file=="." || $file=="..") continue;        $flo_arr[] = $file;    }    foreach($flo_arr as $floder){        $floder_path = $source_path.$floder;        if($dh = opendir($floder_path)){            while (($file = readdir($dh)) !== false){                if($file=="." || $file=="..") continue;                if(strpos($file,'.pdf')!==false){                    $source_pdf = $floder_path.'/'.$file;                    // $html_floder = $out_html_path.str_replace('.pdf','',$file);                    // $flag = pdf2html($source_pdf, $html_floder, $superfix = 0);                    // $png_floder = $out_png_path.str_replace('.pdf','',$file);                    // $flag = pdf2jpg($source_pdf, $png_floder, $width = 748, $height = 967);                    $doc_floder = $out_doc_path.str_replace('.pdf','.doc',$file);                    $cmd = "sudo convert ".$source_pdf." ".$doc_floder;                    exec($cmd, $result, $status);                }            }        }    }}/** * [pdf2html pdf2html] * @param  [type]  $source_pdf    [pdf path] * @param  [type]  $output_folder [] * @param  integer $superfix      [description] * @return [type]                 [false handle faile,number pdf pages] */function pdf2html($source_pdf, $output_folder, $superfix = 0) {    $cmd = "pdf2htmlEX"; //linux    $output_folder = '.' . DIRECTORY_SEPARATOR . trim($output_folder, './\/');    if (!is_dir($output_folder)) {        exec('sudo mkdir -m0777 -p ' . $output_folder);    }    $cmd = "sudo $cmd --no-drm 1 --embed-css 0 --embed-image 0 --embed-font 0 --split-pages 1 --fit-width 748 --css-filename html.css --dest-dir \"$output_folder\" --page-filename page-%d.html --embed-external-font " . $superfix . " --auto-hint 1 \"$source_pdf\"";    exec($cmd, $result, $status);    if ($status === 0) {        $i = 1;        while (file_exists($output_folder . "/page-" . $i . ".html")) {            $content = file_get_contents($output_folder . "/page-" . $i . ".html");            $content = preg_replace("/(<img[^>]+)src=\"(.+)\/>/", "$1" . "src=\"" . ltrim($output_folder, '.') . '/' . "$2" . "/>", $content);            unlink($output_folder . "/page-" . $i . ".html");            file_put_contents($output_folder . "/page-" . $i . ".html", $content);            $i += 1;        }        if (file_exists($output_folder . '/pdf2htmlEX-64x64.png')) {            unlink($output_folder . '/pdf2htmlEX-64x64.png');        }        return $i - 1;    }    return false;}function pdf2jpg($pdf, $path, $width = 728, $height = 943) {    if (!extension_loaded('imagick') || !file_exists($pdf)) {        return false;    }    if (!preg_match("#\.pdf$#i", $pdf)) {        return false;    }    $return = array();    $return['pagecount'] = getPDFPages($pdf);    if (!$return['pagecount']) {        return false;    }    $img = new Imagick();    //$img->setResolution(80, 80); //设置图像分辨率    //$img->setCompressionQuality(100); //压缩比    //文件有坏的,增加try,catch功能    $path_old = $path;    $end = $return['pagecount'];    for ($i = 0; $i < $end; $i++) {        $path = $path_old;        try {            $img->readImage($pdf . "[" . $i . "]"); //设置读取pdf        } catch (Exception $e) {            $exp = fopen('./fileerror.csv', 'a');            $msg = array($pdf, $e->getMessage());            fputcsv($exp, $msg);            fclose($exp);            return false;        }        $child_f = str_replace('.pdf', '', basename($pdf));        $path .= '/' . $child_f;        if (!is_dir($path)) {            @mkdir($path, 0777, true);        }        $img->setImageFormat('png'); //格式        $path .= "/" . $child_f;        $filename = $path . '-l' . ($i + 1) . '.png';        //return $filename;        $img->scaleImage($width, $height, true);        if ($img->writeImage($filename) == true) {            $filename = $path . '-s' . ($i + 1) . '.png';            $img->scaleImage(125, 162, true);            $img->writeImage($filename);            //写入            $img->clear();            $img->destroy();        }        $return[] = $filename;    }    return $return;}function pdfinfo($pdf) {    $result = array();    $cmd = "/usr/bin/pdfinfo"; // Linux    $cmd = realpath($cmd);    exec("$cmd \"$pdf\"", $output);    $pagecount = 0;    foreach ($output as $op) {        if (preg_match("/Pages:\s*(\d+)/i", $op, $matches) === 1) {            $pagecount = intval($matches[1]);            $result['pages'] = $pagecount;            continue;        }        if (preg_match("/Page size:\s*(\d+\.?\d+).*?(\d+\.?\d+)/i", $op, $match) === 1) {            $result['width'] = doubleval($match[1]);            $result['height'] = doubleval($match[2]);            continue;        }    }    return $result;}/* *读取pdf页数 */function getPDFPages($document) {    $cmd = "/usr/bin/pdfinfo"; // Linux    $cmd = realpath($cmd);    exec("$cmd \"$document\"", $output);    // Iterate through lines    $pagecount = 0;    foreach ($output as $op) {        // Extract the number        if (preg_match("/Pages:\s*(\d+)/i", $op, $matches) === 1) {            $pagecount = intval($matches[1]);            break;        }    }    return $pagecount;}//pdf 转换 doc html png end
0 0
原创粉丝点击