ThinkPHP/Library/QL/Ext/DImage.php

(开头部分) 1KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php
namespace QL\Ext;
/**
 * @Author: Jaeger <hj.q@qq.com>
 * @Date:   2015-07-15 23:27:52
 * @Last Modified by:   Jaeger
 * @Last Modified time: 2016-07-09 00:45:08
 * @version         1.1.1
 * 图片下载扩展
 */

use QL\phpQuery;
class DImage extends AQuery
{
    private $attr;

    public function run(array $args)
    {
        $args = array_merge(array(
            'image_path' => '/images',
            'base_url' => '',
            'attr' => array('src'),
            'callback' => null
            ),$args);
        $doc = phpQuery::newDocumentHTML($args['content']);
        $http = $this->getInstance('QL\Ext\Lib\Http');
        $imgs = pq($doc)->find('img');
        foreach ($imgs as $img) {
            $src = $this->getSrc($img,$args);
            $localSrc = rtrim($args['image_path'],'/').'/'.$this->makeFileName($src);
            $savePath = rtrim($args['www_root'],'/').'/'.ltrim($localSrc,'/');
            $this->mkdirs(dirname($savePath));
            $stream = $http->get($src);
            file_put_contents($savePath,$stream);
            pq($img)->attr($this->attr,$localSrc);
            $args['callback'] && $args['callback'](pq($img));
        }
        return $doc->htmlOuter();
    }

    function mkdirs($dir)
    {
        if(!is_dir($dir))
        {
            if(!$this->mkdirs(dirname($dir))){
                return false;
            }
            if(!mkdir($dir,0777)){
                return false;
            }
        }
        return true;
    }

    public function makeFileName($src)
    {
        return md5($src).'.'.pathinfo($src, PATHINFO_EXTENSION);
    }

    public function getSrc($img,$args)
后面还有 14 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。