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')); } }
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); }