Ejemplo n.º 1
0
function plugin_ref_cache_image_fetch($id, &$url)
{
    $filename = MOD_PUKI_UPLOAD_DIR . $id;
    if (!is_readable($filename)) {
        $file = fopen($url, "rb");
        // たぶん size 取得よりこちらが原始的だからやや速い
        if (!$file) {
            fclose($file);
            $url = MOD_PUKI_NOIMAGE;
            $size = @getimagesize($url);
        } else {
            // リモートファイルのパケット有効後対策
            // http://search.net-newbie.com/php/function.fread.html
            //$data = fread($file, 2000000);
            $contents = "";
            do {
                $data = fread($file, 8192);
                if (strlen($data) == 0) {
                    break;
                }
                $contents .= $data;
            } while (true);
            fclose($file);
            $data = $contents;
            unset($contents);
            $size = @getimagesize($url);
            // あったら、size を取得、通常は1が返るが念のため0の場合も(reimy)
            if ($size[0] <= 1) {
                $url = MOD_PUKI_NOIMAGE;
                $size = @getimagesize($url);
            } else {
                $url = MOD_PUKI_UPLOAD_URL . $id;
            }
        }
        plugin_ref_cache_image_save($data, $filename);
    } else {
        $url = MOD_PUKI_UPLOAD_URL . $id;
        $size = @getimagesize($filename);
    }
    return $size;
}
Ejemplo n.º 2
0
function plugin_ref_cache_image_fetch($id, &$url)
{
    $filename = MOD_PUKI_UPLOAD_DIR . $id;
    if (!is_readable($filename)) {
        $result = PukiWikiFunc::http_request($url);
        if ($result['rc'] !== 200) {
            $url = MOD_PUKI_NOIMAGE;
            $result = PukiWikiFunc::http_request($url);
            $data = $result['data'];
        } else {
            $data = $result['data'];
        }
        plugin_ref_cache_image_save($data, $filename);
        $size = @getimagesize($filename);
    } else {
        $url = MOD_PUKI_UPLOAD_URL . $id;
        $size = @getimagesize($filename);
    }
    return $size;
}