示例#1
0
 public function linktourl($link, $pfid)
 {
     global $_G;
     $fid = $pfid;
     $gid = DB::result_first("select gid from %t where fid =%d", array('folder', $pfid));
     $clink = array();
     if (!($clink = DB::fetch_first("select * from " . DB::table("cai_link") . " where url='{$link}'"))) {
         $arr = array();
         require_once dzz_libfile('class/caiji');
         $caiji = new caiji($link);
         $arr['title'] = $caiji->getTitle();
         $arr['description'] = $caiji->getDescription();
         if ($arr['title']) {
             $clink = array('url' => $link, 'img' => '', 'desc' => $arr['description'], 'title' => $arr['title'], 'copys' => 0, 'dateline' => $_G['timestamp']);
             $clink['cid'] = DB::insert('cai_link', $clink, 1);
         }
     }
     $parseurl = parse_url($link);
     $clink['title'] = self::getFileName($clink['title'] ? $clink['title'] : $parseurl['host'], $fid);
     $icondata = getUrlIcon($link);
     $sourcedata = array('uid' => $_G['uid'], 'username' => $_G['username'], 'url' => $link, 'desc' => $clink['desc'], 'title' => $clink['title'], 'cid' => $clink['cid'], 'did' => $icondata['did'], 'icon' => $icondata['img'], 'dateline' => $_G['timestamp'], 'gid' => $gid, 'ext' => $icondata['ext']);
     if ($sourcedata['lid'] = DB::insert('source_link', $sourcedata, 1)) {
         if ($sourcedata['did']) {
             C::t('icon')->update_copys_by_did($sourcedata['did'], 1);
         }
         if ($sourcedata['cid']) {
             C::t('cai_link')->update($clink['cid'], array('copys' => $clink['copys'] + 1));
         }
         $icoarr = array('uid' => $_G['uid'], 'username' => $_G['username'], 'oid' => $sourcedata['lid'], 'name' => $sourcedata['title'], 'flag' => '', 'type' => 'link', 'dateline' => $_G['timestamp'], 'pfid' => $fid, 'opuid' => $_G['uid'], 'gid' => $gid, 'ext' => $sourcedata['ext'], 'size' => 0);
         if ($icoarr['icoid'] = DB::insert('icos', $icoarr, 1)) {
             //$icoarr=array_merge($sourcedata,$icoarr);
             $icoarr['url'] = $sourcedata['url'];
             $icoarr['img'] = $sourcedata['icon'];
             $icoarr['bz'] = '';
             $icoarr['path'] = $icoarr['icoid'];
             $icoarr['dpath'] = dzzencode($icoarr['icoid']);
             addtoconfig($icoarr);
             $icoarr['container'] = $container;
             $icoarr['fsize'] = formatsize($icoarr['size']);
             $icoarr['ftype'] = getFileTypeName($icoarr['type'], $icoarr['ext']);
             $icoarr['fdateline'] = dgmdate($icoarr['dateline']);
             //if($gid) C::t('group_log')->setLog($gid,$_G['uid'],'addlink',lang('message','xiezuo_log_addlink',array('username'=>$_G['username'],'position'=>getPositionName($fid),'name'=>$icoarr['name'])));
         } else {
             C::t('soouce_link')->delete($sourcedata['lid']);
         }
     }
     if ($icoarr['icoid']) {
         return $icoarr;
     } else {
         return array('error' => lang('message', 'linktourl_error'));
     }
 }
示例#2
0
function getUrlIcon($link)
{
    global $_G;
    $rarr = array();
    $parse_url = parse_url($link);
    $host = $parse_url['host'];
    $host = preg_replace("/^www./", '', $host);
    //strstr('.',$host);
    //查询网址特征库
    if ($icon = C::t('icon')->fetch_by_link($link)) {
        return array('img' => $_G['setting']['attachurl'] . $icon['pic'], 'did' => $icon['did'], 'ext' => $icon['ext']);
    } else {
        require_once dzz_libfile('class/caiji');
        $caiji = new caiji($link);
        $source = $caiji->getFavicon();
        if ($source) {
            $subdir = $subdir1 = $subdir2 = '';
            $subdir1 = date('Ym');
            $subdir2 = date('d');
            $subdir = $subdir1 . '/' . $subdir2 . '/';
            $target = 'icon/' . $subdir . '' . $host . '_' . strtolower(random(8)) . '.png';
            $target_attach = $_G['setting']['attachdir'] . $target;
            $targetpath = dirname($target_attach);
            dmkdir($targetpath);
            ico_png($source, $target_attach, $caiji->getProxy());
            if (is_file($target_attach)) {
                if ($did = C::t("icon")->insert(array('domain' => $host, 'pic' => $target, 'check' => 0, 'dateline' => $_G['timestamp'], 'uid' => $_G['uid'], 'username' => $_G['username'], 'copys' => 0), 1)) {
                    return array('img' => $_G['setting']['attachurl'] . $target, 'did' => $did);
                }
            }
        }
    }
    return array('img' => 'dzz/images/default/e.png', 'did' => 0);
}