You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

781 lines
20 KiB

8 years ago
  1. <?php
  2. //定义常量
  3. define('FLADMIN', 'Fladmin'); // 后台模块,首字母最好大写
  4. define('FLLOGIN', 'fllogin'); // 后台登录
  5. //pc前台栏目、标签、内容页面地址生成
  6. function url(array $param)
  7. {
  8. if($param['type'] == 'list')
  9. {
  10. //列表页
  11. $url .= '/cat'.$param['catid'].'.html';
  12. }
  13. else if($param['type'] == 'content')
  14. {
  15. //内容页
  16. $url .= '/cat'.$param['catid'].'/id'.$param['id'].'.html';
  17. }
  18. else if($param['type'] == 'tags')
  19. {
  20. //tags页面
  21. $url .= '/tag'.$param['tagid'].'.html';
  22. }
  23. else if($param['type'] == 'page')
  24. {
  25. //单页面
  26. $url .= '/'.$param['pagename'].'.html';
  27. }
  28. return $url;
  29. }
  30. //wap前台栏目、标签、内容页面地址生成
  31. function murl(array $param)
  32. {
  33. if($param['type'] == 'list')
  34. {
  35. //列表页
  36. $url .= '/cat'.$param['catid'].'.html';
  37. }
  38. else if($param['type'] == 'content')
  39. {
  40. //内容页
  41. $url .= '/cat'.$param['catid'].'/id'.$param['id'].'.html';
  42. }
  43. else if($param['type'] == 'tags')
  44. {
  45. //tags页面
  46. $url .= '/tag'.$param['tagid'].'.html';
  47. }
  48. else if($param['type'] == 'page')
  49. {
  50. //单页面
  51. $url .= '/'.$param['pagename'].'.html';
  52. }
  53. return $url;
  54. }
  55. /**
  56. * 获取文章列表
  57. * @param int $tuijian=0 推荐等级
  58. * @param int $typeid=0 分类
  59. * @param int $image=1 是否存在图片
  60. * @param int $row=10 需要返回的数量
  61. * @param string $orderby='id desc' 排序,默认id降序,随机rand()
  62. * @param string $limit='0,10' 如果存在$row,$limit就无效
  63. * @return string
  64. */
  65. function arclist(array $param)
  66. {
  67. if(!empty($param['tuijian'])){$map['tuijian']=$param['tuijian'];}
  68. if(!empty($param['typeid'])){$map['typeid']=$param['typeid'];}
  69. if(!empty($param['image'])){$map['litpic']=array('NEQ','');}
  70. if(!empty($param['limit'])){$limit=$param['limit'];}else{if(!empty($param['row'])){$limit="0,".$param['row'];}else{$limit='0,'.cms_pagesize;}}
  71. if(!empty($param['orderby'])){$orderby=$param['orderby'];}else{$orderby='id desc';}
  72. if(!empty($param['sql']))
  73. {
  74. $Artlist = M("Article")->field('body',true)->where($param['sql'])->order($orderby)->limit($limit)->select();
  75. }
  76. else
  77. {
  78. $Artlist = M("Article")->field('body',true)->where($map)->order($orderby)->limit($limit)->select();
  79. }
  80. return $Artlist;
  81. }
  82. /**
  83. * 获取tag标签列表
  84. * @param int $row=10 需要返回的数量,如果存在$limit,$row就无效
  85. * @param string $orderby='id desc' 排序,默认id降序,随机rand()
  86. * @param string $limit='0,10'
  87. * @return string
  88. */
  89. function tagslist(array $param)
  90. {
  91. if(!empty($param['limit'])){$limit=$param['limit'];}else{if(!empty($param['row'])){$limit=$param['row'];}}
  92. if(!empty($param['orderby'])){$orderby=$param['orderby'];}else{$orderby='id desc';}
  93. $Taglist = M("Tagindex")->field('content',true)->where($map)->order($orderby)->limit($limit)->select();
  94. return $Taglist;
  95. }
  96. /**
  97. * 获取友情链接
  98. * @param string $orderby='id desc' 排序,默认id降序,随机rand()
  99. * @param int||string $limit='0,10'
  100. * @return string
  101. */
  102. function flinklist(array $param)
  103. {
  104. if(!empty($param['row'])){$limit=$param['row'];}else{$limit="";}
  105. if(!empty($param['orderby'])){$orderby=$param['orderby'];}else{$orderby='id desc';}
  106. $Friendlink = M("Friendlink")->where()->order($orderby)->limit($limit)->select();
  107. return $Friendlink;
  108. }
  109. /**
  110. * 获取文章上一篇,下一篇id
  111. * @param $param['aid'] 当前文章id
  112. * @param $param['typeid'] 当前文章typeid
  113. * @param string $type 获取类型
  114. * pre:上一篇 next:下一篇
  115. * @return array
  116. */
  117. function get_article_prenext(array $param)
  118. {
  119. $sql = $typeid = $res = '';
  120. $sql='id='.$param["aid"];
  121. if(!empty($param["typeid"]))
  122. {
  123. $typeid = $param["typeid"];
  124. }
  125. else
  126. {
  127. $Article = M("Article")->field('typeid')->where($sql)->find();
  128. $typeid = $Article["typeid"];
  129. }
  130. if($param["type"]=='pre')
  131. {
  132. $sql='id<'.$param['aid'].' and typeid='.$typeid;
  133. $res = M("Article")->field('id,typeid,title')->where($sql)->order('id desc')->find();
  134. }
  135. else if($param["type"]=='next')
  136. {
  137. $sql='id>'.$param['aid'].' and typeid='.$typeid;
  138. $res = M("Article")->field('id,typeid,title')->where($sql)->order('id asc')->find();
  139. }
  140. return $res;
  141. }
  142. /**
  143. * 获取列表分页
  144. * @param $param['pagenow'] 当前第几页
  145. * @param $param['counts'] 总条数
  146. * @param $param['pagesize'] 每页显示数量
  147. * @param $param['catid'] 栏目id
  148. * @param $param['offset'] 偏移量
  149. * @return array
  150. */
  151. function get_listnav(array $param)
  152. {
  153. $catid=$param["catid"];
  154. $pagenow=$param["pagenow"];
  155. $prepage = $nextpage = '';
  156. $prepagenum = $pagenow-1;
  157. $nextpagenum = $pagenow+1;
  158. $counts=$param["counts"];
  159. $totalpage=get_totalpage(array("counts"=>$counts,"pagesize"=>$param["pagesize"]));
  160. if($totalpage<=1 && $counts>0)
  161. {
  162. return "<li><span class=\"pageinfo\">共1页/".$counts."条记录</span></li>";
  163. }
  164. if($counts == 0)
  165. {
  166. return "<li><span class=\"pageinfo\">共0页/".$counts."条记录</span></li>";
  167. }
  168. $maininfo = "<li><span class=\"pageinfo\">共$totalpage页".$counts."条</span></li>";
  169. if(!empty($param["urltype"]))
  170. {
  171. $urltype = $param["urltype"];
  172. }
  173. else
  174. {
  175. $urltype = 'cat';
  176. }
  177. //获得上一页和下一页的链接
  178. if($pagenow != 1)
  179. {
  180. if($pagenow == 2)
  181. {
  182. $prepage.="<li><a href='/".$urltype.$catid.".html'>上一页</a></li>";
  183. }
  184. else
  185. {
  186. $prepage.="<li><a href='/".$urltype.$catid."/$prepagenum.html'>上一页</a></li>";
  187. }
  188. $indexpage="<li><a href='/".$urltype.$catid.".html'>首页</a></li>";
  189. }
  190. else
  191. {
  192. $indexpage="<li><a>首页</a></li>";
  193. }
  194. if($pagenow!=$totalpage && $totalpage>1)
  195. {
  196. $nextpage.="<li><a href='/".$urltype.$catid."/$nextpagenum.html'>下一页</a></li>";
  197. $endpage="<li><a href='/".$urltype.$catid."/$totalpage.html'>末页</a></li>";
  198. }
  199. else
  200. {
  201. $endpage="<li><a>末页</a></li>";
  202. }
  203. //获得数字链接
  204. $listdd="";
  205. if(!empty($param["offset"])){$offset=$param["offset"];}else{$offset=2;}
  206. $minnum=$pagenow-$offset;
  207. $maxnum=$pagenow+$offset;
  208. if($minnum<1){$minnum=1;}
  209. if($maxnum>$totalpage){$maxnum=$totalpage;}
  210. for($minnum;$minnum<=$maxnum;$minnum++)
  211. {
  212. if($minnum==$pagenow)
  213. {
  214. $listdd.= "<li class=\"thisclass\"><a>$minnum</a></li>";
  215. }
  216. else
  217. {
  218. if($minnum==1)
  219. {
  220. $listdd.="<li><a href='/".$urltype.$catid.".html'>$minnum</a></li>";
  221. }
  222. else
  223. {
  224. $listdd.="<li><a href='/".$urltype.$catid."/$minnum.html'>$minnum</a></li>";
  225. }
  226. }
  227. }
  228. $plist = '';
  229. $plist .= $indexpage; //首页链接
  230. $plist .= $prepage; //上一页链接
  231. $plist .= $listdd; //数字链接
  232. $plist .= $nextpage; //下一页链接
  233. $plist .= $endpage; //末页链接
  234. $plist .= $maininfo;
  235. return $plist;
  236. }
  237. /**
  238. * 获取列表上一页、下一页
  239. * @param $param['pagenow'] 当前第几页
  240. * @param $param['counts'] 总条数
  241. * @param $param['pagesize'] 每页显示数量
  242. * @param $param['catid'] 栏目id
  243. * @return array
  244. */
  245. function get_prenext(array $param)
  246. {
  247. $counts=$param['counts'];
  248. $pagenow=$param["pagenow"];
  249. $prepage = $nextpage = '';
  250. $prepagenum = $pagenow-1;
  251. $nextpagenum = $pagenow+1;
  252. $cat=$param['catid'];
  253. if(!empty($param["urltype"]))
  254. {
  255. $urltype = $param["urltype"];
  256. }
  257. else
  258. {
  259. $urltype = 'cat';
  260. }
  261. $totalpage=get_totalpage(array("counts"=>$counts,"pagesize"=>$param["pagesize"]));
  262. //获取上一页
  263. if($pagenow == 1)
  264. {
  265. }
  266. elseif($pagenow==2)
  267. {
  268. $prepage='<a class="prep" href="/'.$urltype.$cat.'.html">上一页</a> &nbsp; ';
  269. }
  270. else
  271. {
  272. $prepage='<a class="prep" href="/'.$urltype.$cat.'/'.$prepagenum.'.html">上一页</a> &nbsp; ';
  273. }
  274. //获取下一页
  275. if($pagenow<$totalpage && $totalpage>1)
  276. {
  277. $nextpage='<a class="nextp" href="/'.$urltype.$cat.'/'.$nextpagenum.'.html">下一页</a>';
  278. }
  279. $plist = '';
  280. $plist .= $indexpage; //首页链接
  281. $plist .= $prepage; //上一页链接
  282. $plist .= $nextpage; //下一页链接
  283. return $plist;
  284. }
  285. /**
  286. * 获取分页列表
  287. * @access public
  288. * @param string $list_len 列表宽度
  289. * @param string $list_len 列表样式
  290. * @return string
  291. */
  292. function pagenav(array $param)
  293. {
  294. $prepage = $nextpage = '';
  295. $prepagenum = $param["pagenow"]-1;
  296. $nextpagenum = $param["pagenow"]+1;
  297. if(!empty($param['tuijian'])){$map['tuijian']=$param['tuijian'];}
  298. if(!empty($param['typeid'])){$map['typeid']=$param['typeid'];}
  299. if(!empty($param['image'])){$map['litpic']=array('NEQ','');}
  300. if(!empty($param['row'])){$limit="0,".$param['row'];}else{if(!empty($param['limit'])){$limit=$param['limit'];}else{$limit='0,8';}}
  301. if(!empty($param['orderby'])){$orderby=$param['orderby'];}else{$orderby='id desc';}
  302. $Artlist = M("Article")->field('body',true)->where($map)->order($orderby)->limit($limit)->select();
  303. return $Artlist;
  304. }
  305. //根据总数与每页条数,获取总页数
  306. function get_totalpage(array $param)
  307. {
  308. if(!empty($param['pagesize'] || $param['pagesize']==0)){$pagesize=$param["pagesize"];}else{$pagesize=cms_pagesize;}
  309. $counts=$param["counts"];
  310. //取总数据量除以每页数的余数
  311. if($counts % $pagesize)
  312. {
  313. $totalpage = intval($counts/$pagesize) + 1; //如果有余数,则页数等于总数据量除以每页数的结果取整再加一,如果没有余数,则页数等于总数据量除以每页数的结果
  314. }
  315. else
  316. {
  317. $totalpage = $counts/$pagesize;
  318. }
  319. return $totalpage;
  320. }
  321. /**
  322. * 获得当前的页面文件的url
  323. * @access public
  324. * @return string
  325. */
  326. function GetCurUrl()
  327. {
  328. if(!empty($_SERVER['REQUEST_URI']))
  329. {
  330. $nowurl = $_SERVER['REQUEST_URI'];
  331. $nowurls = explode('?', $nowurl);
  332. $nowurl = $nowurls[0];
  333. }
  334. else
  335. {
  336. $nowurl = $_SERVER['PHP_SELF'];
  337. }
  338. return $nowurl;
  339. }
  340. /**
  341. * 获取单页列表
  342. * @param int $row=8 需要返回的数量
  343. * @param string $orderby='id desc' 排序,默认id降序,随机rand()
  344. * @param string $limit='0,8' 如果存在$row,$limit就无效
  345. * @return string
  346. */
  347. function pagelist(array $param)
  348. {
  349. if(!empty($param['row'])){$limit="0,".$param['row'];}else{if(!empty($param['limit'])){$limit=$param['limit'];}else{$limit='0,8';}}
  350. if(!empty($param['orderby'])){$orderby=$param['orderby'];}else{$orderby='id desc';}
  351. $Pagelist = M("Page")->field('body',true)->where($map)->order($orderby)->limit($limit)->select();
  352. return $Pagelist;
  353. }
  354. /**
  355. * 截取中文字符串
  356. * @param string $string 中文字符串
  357. * @param int $sublen 截取长度
  358. * @param int $start 开始长度 默认0
  359. * @param string $code 编码方式 默认UTF-8
  360. * @param string $omitted 末尾省略符 默认...
  361. * @return string
  362. */
  363. function cut_str($string, $sublen=250, $omitted = '', $start=0, $code='UTF-8')
  364. {
  365. $string = strip_tags($string);
  366. $string = str_replace(" ","",$string);
  367. $string = mb_strcut($string,$start,$sublen,$code);
  368. $string.= $omitted;
  369. return $string;
  370. }
  371. //PhpAnalysis获取中文分词
  372. function get_keywords($keyword)
  373. {
  374. import("Vendor.PhpAnalysis.PhpAnalysis");
  375. //初始化类
  376. PhpAnalysis::$loadInit = false;
  377. $pa = new PhpAnalysis('utf-8', 'utf-8', false);
  378. //载入词典
  379. $pa->LoadDict();
  380. //执行分词
  381. $pa->SetSource($keyword);
  382. $pa->StartAnalysis( false );
  383. $keywords = $pa->GetFinallyResult(',');
  384. return ltrim($keywords, ",");
  385. }
  386. //根据栏目id获取栏目信息
  387. function typeinfo($typeid)
  388. {
  389. return M("Arctype")->where("id=$typeid")->find();
  390. }
  391. //根据栏目id获取该栏目下文章/商品的数量
  392. function catarcnum($typeid,$modelname='Article')
  393. {
  394. $map['typeid']=$typeid;
  395. return M($modelname)->field('id')->where($map)->count();
  396. }
  397. //根据Tag id获取该Tag标签下文章的数量
  398. function tagarcnum($tagid)
  399. {
  400. if(!empty($tagid)){$map['tid']=$tagid;}
  401. $Taglist = M("Taglist")->where($map);
  402. $counts = $Taglist->count();
  403. return $counts;
  404. }
  405. //判断是否是图片格式,是返回true
  406. function imgmatch($url)
  407. {
  408. $info = pathinfo($url);
  409. if (isset($info['extension']))
  410. {
  411. if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png'))
  412. {
  413. return true;
  414. }
  415. else
  416. {
  417. return false;
  418. }
  419. }
  420. }
  421. //将栏目列表生成数组
  422. function get_category($modelname,$parent_id=0,$pad=0)
  423. {
  424. $arr=array();
  425. $Arctype = M($modelname);
  426. $cats = $Arctype->where("reid=$parent_id")->order('id asc')->select();
  427. if($cats)
  428. {
  429. foreach($cats as $row)//循环数组
  430. {
  431. $row['deep'] = $pad;
  432. if(get_category($modelname,$row["id"]))//如果子级不为空
  433. {
  434. $row['child'] = get_category($modelname,$row["id"],$pad+1);
  435. }
  436. $arr[] = $row;
  437. }
  438. return $arr;
  439. }
  440. }
  441. function tree($list,$pid=0)
  442. {
  443. global $temp;
  444. if(!empty($list))
  445. {
  446. foreach($list as $v)
  447. {
  448. $temp[] = array("id"=>$v['id'],"deep"=>$v['deep'],"typename"=>$v['typename'],"reid"=>$v['reid'],"typedir"=>$v['typedir'],"addtime"=>$v['addtime']);
  449. //echo $v['id'];
  450. if(array_key_exists("child",$v))
  451. {
  452. tree($v['child'],$v['reid']);
  453. }
  454. }
  455. }
  456. return $temp;
  457. }
  458. //递归获取面包屑导航
  459. function get_cat_path($cat)
  460. {
  461. global $temp;
  462. $row = M("Arctype")->field('typename,reid,id')->where("id=$cat")->find();
  463. $temp = '<a href="'.cms_basehost.'/cat'.$row["id"].'.html">'.$row["typename"]."</a> > ".$temp;
  464. if($row["reid"]<>0)
  465. {
  466. get_cat_path($row["reid"]);
  467. }
  468. return $temp;
  469. }
  470. //根据文章id获得tag,$id表示文章id,$tagid表示要排除的标签id
  471. function taglist($id,$tagid=0)
  472. {
  473. $tags="";
  474. if($tagid!=0)
  475. {
  476. $Taglist = M("Taglist")->where("aid=$id and tid<>$tagid")->select();
  477. }
  478. else
  479. {
  480. $Taglist = M("Taglist")->where("aid=$id")->select();
  481. }
  482. foreach($Taglist as $row)
  483. {
  484. if($tags==""){$tags='id='.$row['tid'];}else{$tags=$tags.' or id='.$row['tid'];}
  485. }
  486. if($tags!=""){return M("Tagindex")->where($tags)->select();}
  487. }
  488. //获取https的get请求结果
  489. function get_curl_data($c_url,$data='')
  490. {
  491. $curl = curl_init(); // 启动一个CURL会话
  492. curl_setopt($curl, CURLOPT_URL, $c_url); // 要访问的地址
  493. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
  494. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在
  495. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
  496. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
  497. curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
  498. if($data)
  499. {
  500. curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
  501. curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
  502. }
  503. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
  504. curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  505. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
  506. $tmpInfo = curl_exec($curl); // 执行操作
  507. if (curl_errno($curl))
  508. {
  509. echo 'Errno'.curl_error($curl);//捕抓异常
  510. }
  511. curl_close($curl); // 关闭CURL会话
  512. return $tmpInfo; // 返回数据
  513. }
  514. //通过file_get_content()获取远程数据
  515. function http_request_post($url,$data,$type='POST')
  516. {
  517. $content = http_build_query($data);
  518. $content_length = strlen($content);
  519. $options = array(
  520. 'http' => array(
  521. 'method' => $type,
  522. 'header' =>
  523. "Content-type: application/x-www-form-urlencoded\r\n" .
  524. "Content-length: $content_length\r\n",
  525. 'content' => $content
  526. )
  527. );
  528. $result = file_get_contents($url,false,stream_context_create($options));
  529. return $result;
  530. }
  531. /**
  532. * 为文章内容添加内敛, 排除alt title <a></a>直接的字符替换
  533. *
  534. * @param string $body
  535. * @return string
  536. */
  537. function ReplaceKeyword($body)
  538. {
  539. $karr = $kaarr = array();
  540. //暂时屏蔽超链接
  541. $body = preg_replace("#(<a(.*))(>)(.*)(<)(\/a>)#isU", '\\1-]-\\4-[-\\6', $body);
  542. if(S("keywordlist")){$posts=S("keywordlist");}else{$posts = M("Keyword")->cache("keywordlist",2592000)->select();}
  543. foreach($posts as $row)
  544. {
  545. $keyword = trim($row['keyword']);
  546. $key_url=trim($row['rpurl']);
  547. $karr[] = $keyword;
  548. $kaarr[] = "<a href='$key_url' target='_blank'><u>$keyword</u></a>";
  549. }
  550. asort($karr);
  551. $body = str_replace('\"', '"', $body);
  552. foreach ($karr as $key => $word)
  553. {
  554. $body = preg_replace("#".preg_quote($word)."#isU", $kaarr[$key], $body, 1);
  555. }
  556. //恢复超链接
  557. return preg_replace("#(<a(.*))-\]-(.*)-\[-(\/a>)#isU", '\\1>\\3<\\4', $body);
  558. }
  559. /**
  560. * 删除非站内链接
  561. *
  562. * @access public
  563. * @param string $body 内容
  564. * @param array $allow_urls 允许的超链接
  565. * @return string
  566. */
  567. function replacelinks($body, $allow_urls=array())
  568. {
  569. $host_rule = join('|', $allow_urls);
  570. $host_rule = preg_replace("#[\n\r]#", '', $host_rule);
  571. $host_rule = str_replace('.', "\\.", $host_rule);
  572. $host_rule = str_replace('/', "\\/", $host_rule);
  573. $arr = '';
  574. preg_match_all("#<a([^>]*)>(.*)<\/a>#iU", $body, $arr);
  575. if( is_array($arr[0]) )
  576. {
  577. $rparr = array();
  578. $tgarr = array();
  579. foreach($arr[0] as $i=>$v)
  580. {
  581. if( $host_rule != '' && preg_match('#'.$host_rule.'#i', $arr[1][$i]) )
  582. {
  583. continue;
  584. }
  585. else
  586. {
  587. $rparr[] = $v;
  588. $tgarr[] = $arr[2][$i];
  589. }
  590. }
  591. if( !empty($rparr) )
  592. {
  593. $body = str_replace($rparr, $tgarr, $body);
  594. }
  595. }
  596. $arr = $rparr = $tgarr = '';
  597. return $body;
  598. }
  599. /**
  600. * 获取文本中首张图片地址
  601. * @param [type] $content
  602. * @return [type]
  603. */
  604. function getfirstpic($content)
  605. {
  606. if(preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|bmp|png))\\2/i", $content, $matches))
  607. {
  608. $file=$_SERVER['DOCUMENT_ROOT'].$matches[3][0];
  609. if(file_exists($file))
  610. {
  611. return $matches[3][0];
  612. }
  613. }
  614. else
  615. {
  616. return false;
  617. }
  618. }
  619. /**
  620. * 更新配置文件 / 更新系统缓存
  621. */
  622. function updateconfig()
  623. {
  624. $str_tmp="<?php\r\n"; //得到php的起始符。$str_tmp将累加
  625. $str_end="?>"; //php结束符
  626. $str_tmp.="//全站配置文件\r\n";
  627. $param = M("Sysconfig")->select();
  628. foreach($param as $row)
  629. {
  630. $str_tmp.='define("'.$row['varname'].'","'.$row['value'].'"); // '.$row['info']."\r\n";
  631. }
  632. $str_tmp.=$str_end; //加入结束符
  633. //保存文件
  634. $sf="./Flhome/Common/Conf/common.inc.php"; //文件名
  635. $fp=fopen($sf,"w"); //写方式打开文件
  636. fwrite($fp,$str_tmp); //存入内容
  637. fclose($fp); //关闭文件
  638. }
  639. //清空文件夹
  640. function dir_delete($dir)
  641. {
  642. //$dir = dir_path($dir);
  643. if (!is_dir($dir)) return FALSE;
  644. $handle = opendir($dir); //打开目录
  645. while(($file = readdir($handle)) !== false)
  646. {
  647. if($file == '.' || $file == '..')continue;
  648. $d = $dir.DIRECTORY_SEPARATOR.$file;
  649. is_dir($d) ? dir_delete($d) : @unlink($d);
  650. }
  651. closedir($handle);
  652. return @rmdir($dir);
  653. }
  654. //从HTML文档中获得全部图片
  655. //如果你曾经希望去获得某个网页上的全部图片,这段代码就是你需要的,你可以轻松的建立一个图片下载机器人
  656. //$images = array();
  657. //preg_match_all('/(img|src)=("|')[^"'>]+/i', $data, $media);
  658. //unset($data);
  659. //$data=preg_replace('/(img|src)("|'|="|=')(.*)/i',"$3",$media[0]);
  660. //foreach($data as $url)
  661. //{
  662. //$info = pathinfo($url);
  663. //if (isset($info['extension']))
  664. //{
  665. //if (($info['extension'] == 'jpg') || ($info['extension'] == 'jpeg') || ($info['extension'] == 'gif') || ($info['extension'] == 'png'))
  666. //array_push($images, $url);
  667. //}
  668. //}