PHP抓取网页内容汇总3

$filename="http://www.edeng.cn/index.html";   //设定开始抓取的网页地址
$content=file_get_contents($filename); //获取html内容
$filename   =   'index1.htm';   //取名字
$handle=fopen($filename,'w');//打开文件并确认可写
fwrite($handle,$content);

echo   "";
?>  
附带fopen操作说明:

 

fopen

(PHP 3, PHP 4 )

fopen-- 打开文件或者 URL

说明

resource fopen( string filename, string mode [, int use_include_path [, resource zcontext]])

fopen()filename指定的名字资源绑定到一个流上。如果filename是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将filename当成一个普通的文件名继续执行下去。

如果 PHP 认为filename指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了安全模式或者open_basedir则会应用进一步的限制。

如果 PHP 认为filename指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认allow_url_fopen已被激活。如果关闭了,PHP 将发出一个警告,而fopen的调用则失败。

注:所支持的协议列表见附录 J。某些协议(也被称为wrappers)支持contextphp.ini选项。参见相应的页面哪些选项可以被设定。(也就是php.ini的值user_agent用在http协议中。)有关contextszcontext参数的说明,参见参考 CV,Stream Functions

mode参数指定了所要求到该流的访问类型。可以是以下:

表格 1.fopen()中的mode的可能值列表

mode 说明
'r' 只读方式打开,将文件指针指向文件头。
'r+' 读写方式打开,将文件指针指向文件头。
'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的open(2)系统调用指定O_EXCL|O_CREAT标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。
'x+' 创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建之。这和给 底层的open(2)系统调用指定O_EXCL|O_CREAT标记是等价的。此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

 

注:不同的操作系统家族具有不同的行结束习惯。当你写入一个文本文件并想插入一个新行时,你需要使用符合你操作系统的行结束符号。基于 Unix 的系统使用/n作为行结束字符,基于 Windows 的系统使用/r/n作为行结束字符,基于 Macintosh 的系统使用/r作为行结束字符。

如果写入文件时使用了错误的行结束符号,则其它应用程序打开这些文件时可能会表现得很怪异。

Windows 下提供了一个文本转换标记('t')可以透明地将/n转换为/r/n。与此对应你还可以使用'b'来强制使用二进制模式,这样就不会转换你的数据。要使用这些标记,要么用'b'或者用't'作为mode参数的最后一个字符。

默认的转换模式依赖于 SAPI 和你使用的 PHP 版本,因此为了便于移植鼓励你总是指定恰当的标记。当操作以/n作为行结束定界符的纯文本文件时,如果你还期望这些文件可以用于其它应用程序例如 Notepad,则应该在脚本中使用't'模式。在所有其它情况下使用'b'

在操作二进制文件时如果没有指定'b'标记,可能会碰到一些奇怪的问题,包括坏掉的图片文件以及关于/r/n字符的奇怪问题。

为移植性考虑,强烈建议在用fopen()打开文件时总是使用'b'标记。

再一次,为移植性考虑,强烈建议你重写那些依赖于't'模式的代码使其使用正确的行结束符并改成'b'模式。

自 PHP 4.3.2 起,对所有区别二进制和文本模式的平台默认模式都被设为二进制模式。如果你在升级后脚本碰到问题,尝试暂时使用't'标记,直到所有的脚本都照以上所说的改为更具移植性以后。

如果也需要在include_path中搜寻文件的话,可以将可选的第三个参数use_include_path设为 '1' 或TRUE

如果打开失败,本函数返回FALSE

例子 1.fopen()例子

$handle=fopen("/home/rasmus/file.txt","r");
$handle=fopen("/home/rasmus/file.gif","wb"
);
$handle=fopen("http://www.example.com/","r"
);
$handle=fopen("ftp://user:[email protected]/somefile.txt","w"
);
?>

如果在用服务器模块版本的 PHP 时在打开和写入文件上遇到问题,记住要确保所使用的文件是服务器进程所能够访问的。

在 Windows 平台上,要小心转义文件路径中的每个反斜线,或者用斜线。

 

$handle=fopen("c://data//info.txt","r");
?>

fwirte例子:

例子 1. 一个简单的fwrite范例

$filename='test.txt';
$somecontent="添加这些文字到文件/n"
;

// 首先我们要确定文件存在并且可写。
if (is_writable($filename
)) {

    
// 在这个例子里,我们将使用添加模式打开$filename,
     // 因此,文件指针将会在文件的开头,
     // 那就是当我们使用fwrite()的时候,$somecontent将要写入的地方。
    
if (!$handle=fopen($filename,'a'
)) {
          print
"不能打开文件 $filename"
;
          exit;
     }

    
// 将$somecontent写入到我们打开的文件中。
    
if (!fwrite($handle,$somecontent
)) {
         print
"不能写入到文件 $filename"
;
         exit;
     }

     print
"成功地将 $somecontent 写入到文件$filename"
;

    
fclose($handle
);

} else {
     print
"文件 $filename 不可写"
;
}
?>

========================================================

基于PHP抓取MSN SPACE的RSS信息
http://hi.baidu.com/meloidea/blog/item/db1d18306fef1d9da9018e92.html

RSS(也叫聚合内容,Really Simple Syndication)是一种描述和同步网站内容的格式,是目前使用最广泛的XML应用,可以有效的实现网络内容信息资源的共享。

基于PHP有很多现成的RSS聚合类,下面以lastRSS为例介绍一下如何去抓取微软的MSN SPACE日志信息。

首先需要下载lastRSS类,地址是:http://lastrss.oslab.net/。下载下来解压,就一个文件lastRSS.php,非常简单,使用代码如下,比如要抓取RSS种子是'http://meloidea.spaces.live.com/feed.rss',代码如下:

//指定PHP文件输出的编码,避免乱码
header('content-type:text/html;charset=utf-8');

// 加载 lastRSS 类
include "lastRSS.php";

// 创建 lastRSS 对象
$rss = new lastRSS;

//设置缓存目录
$rss->cache_dir = './temp';
//缓存保留时间1200秒
$rss->cache_time = 1200;

// 加载RSS源
if ($rs = $rss->get('http://meloidea.spaces.live.com/feed.rss')) {

// 显示网站标识图
if ($rs[image_url] != '') {
echo "/"$rs[image_title]/"
/n";
}

//显示网站标题
echo "$rs[title]
/n";

//显示网站描述
echo "$rs[description]
/n";

//显示最新的日志 (标题,链接和描述)
echo "

";
foreach($rs['items'] as $item) {
   
echo "
  • ".$item[title]."
    ".html_entity_decode($item['description'])."
  • ";
            }
        echo "
    ";
        }
    else {
        echo "错误: 找不到RSS源文件信息/n";
    }
    ?>

    注意:MSN SPACE需要使用html_entity_decode($item['description'],否则日志内容将显示成HTML的代码

    当然除了lastRSS还有magpierss和gregarius也可以实现RSS的聚合

    ========================================================

    PHP抓取远程网站数据的代码
    http://hi.baidu.com/kaxi/blog/item/071c513dd94477ea3c6d97da.html

    现在可能还有很多程序爱好者都会遇到同样的疑问,就是要如何像搜索引擎那样去抓取别人网站的HTML代码,然后把代码收集整理成为自己有用的数据!今天就等我介绍一些简单例子吧.

    Ⅰ.抓取远程网页标题的例子:

    以下是代码片段:

    /*
    +-------------------------------------------------------------
    +抓取网页标题的代码,直接拷贝本代码片段,另存为.php文件执行即可.
    +-------------------------------------------------------------
    */


    error_reporting(7);
    $file = fopen ("http://www.dnsing.com/", "r");
    if (!$file) {
    echo "Unable to open remote file./n";
    exit;
    }
    while (!feof ($file)) {
    $line = fgets ($file, 1024);
    if (eregi ("(.*)", $line, $out)) {
    $title = $out[1];
    echo "".$title."";
    break;
    }
    }
    fclose($file);


    //End
    ?>

    Ⅱ.抓取远程网页HTML代码的例子:

    以下是代码片段:
    /*
    +----------------
    +DNSing Sprider
    +----------------

    */

    $fp = fsockopen("www.dnsing.com", 80, $errno, $errstr, 30);
    if (!$fp) {
       echo "$errstr ($errno)
    /n";
    } else {
       $out = "GET / HTTP/1.1/r/n";
       $out .= "Host:
    www.dnsing.com/r/n";
       $out .= "Connection: Close /r/n/r/n";
       fputs($fp, $out);
       while (!feof($fp)) {
         echo fgets($fp, 128);
       }
       fclose($fp);
    }
    //End
    ?>

    以上两个代码片段都直接Copy回去运行就知道效果了,上面的例子只是抓取网页数据的雏形,要使其更适合自己的使用,情况有各异.所以,在此各位程序爱好者自己好好研究一下吧.

    这篇文章介绍了两个比较基础的例子

    ========================================================

    用PHP抓取百度空间的文章标题、内容及分类列表
    http://hi.baidu.com/antsnet/blog/item/7efb5043387a8b179213c636.html


    获取分类
    function getSort($url = 'http://hi.baidu.com/antsnet')
    {
    $contents = file_get_contents($url);
    if($contents)
    {
       //$contents = preg_replace("/[/r/n|/n]/", "", $contents);
       $exp_match = "/

       preg_match_all($exp_match, $contents, $match);
       return $match[1];
    }
    }

    获取文章列表及描述
    function getDid($url){
    if(stristr($url,"http://")==false){
       $url="http://";
    }
    $exp_domain="/^http:(.*)[/.com|/.cn|/.org|/.com/.cn|/.net/.cn|/.org/.cn]{1}///";//获取DOMAIN
    $exp_header="/|/";
    preg_match($exp_domain,$url,$match);
    $DOMAIN="http://hi.baidu.com";
    $div_exp="/(.*)(/r/n|/n)(.*)/";
    $div_page="/(.*)/";
    $CONTENTS=@file_get_contents($url);
    if(!$CONTENTS){
       die("This url does not exit.");
    }
    preg_match_all($div_exp,$CONTENTS,$match);
    preg_match_all($div_page,$CONTENTS,$myPage);
    foreach($match[0] as $m){
       if(stristr($m,"class=/"tit/"")!=false){
        $m=str_replace("/antsnet","?act=article&path=/antsnet",$m);
        //$m=str_replace("a href=","a target=/"_blank/" href=",$m);
        //$m=str_replace("title=","target=/"_blank/" title=",$m);
        $title[]=$m;
       }
       if(stristr($m,"class=/"item/"")){
        $m=str_replace("/antsnet","?act=article&?path=antsnet",$m);
        //$m=str_replace("a href=","a target=/"_blank/" href=",$m);
        //$m=str_replace("title=","target=/"_blank/" title=",$m);
        $sort[]=$m;
       }
    }
    if(is_array($myPage)){
       $page=str_replace("/antsnet","?act=Page&index=/antsnet",$myPage[0][0]);
    }
    @array_shift($title);
    if(sizeof($title)==0){
       header("Location: index.php");
       exit();
    }
    $return["title"]=$title;
    $return["sort"]=$sort;
    $return["page"]=$page;
    return $return;
    }
    获取文章内容
    function getArticleContents($url = 'http://hi.baidu.com/antsnet/blog/item/f1fefbdc5df36aa4cc1166d8.html')
    {
       $contents = preg_replace("/[/r/n|/n]/", "", file_get_contents($url));
       $exp_title = "/(.*)<//title>/";<br>   $exp_match = "/<table style=/"table-layout:fixed/">(.*)<//tr><//table><br>/";<br>   preg_match_all($exp_match, $contents, $match);<br>   preg_match_all($exp_title, $contents, $titles);<br>   return '<p><span style="color:red;font-size:15px;">' . str_replace('_Antsnet.net', '', $titles[1][0]) . '     [snatch at : '.date('Y-m-d H:i:s').']</span><!--<a href="javascript.:history.go(-1);">[返回]</a>--></p>' . $match[0][0];<br>}</p> </div> <p><span style="color:#ff0000;">========================================================</span></p> <p><span style="color:#ff6600;">php抓取蜘蛛</span><br>http://hi.baidu.com/piea/blog/item/ff82962f2c6b3f3e1e308903.html</p> <p>搜索引擎的蜘蛛访问网站是通过远程抓取页面来进行的,我们不能使用JS代码来取得蜘蛛的Agent信息,但是我们可以通过image标签,这样我们就可以得到蜘蛛的agent资料了,通过对agent资料的分析,就可以确定蜘蛛的种类、性别等因素,我们在通过数据库或者文本来记录就可以进行统计了。<br>下面是我的程序和源代码:<br>数据库结构:<br>#<br># 表的结构`naps_stats_bot`<br>#<br>CREATE TABLE `naps_stats_bot` (<br>`botid` int(10) unsigned NOT NULL auto_increment,<br>`botname` varchar(100) NOT NULL default '',<br>`botagent` varchar(200) NOT NULL default '',<br>`bottag` varchar(100) NOT NULL default '',<br>`botcount` int(11) NOT NULL default '0',<br>`botlast` datetime NOT NULL default '0000-00-00 00:00:00',<br>`botlasturl` varchar(250) NOT NULL default '',<br>UNIQUE KEY `botid` (`botid`),<br>KEY `botname` (`botname`)<br>) TYPE=MyISAM AUTO_INCREMENT=9 ;<br>#<br># 导出表中的数据 `naps_stats_bot`<br>#<br>INSERT INTO `naps_stats_bot` VALUES (1, 'Googlebot', 'Googlebot/2.X(+http://www.googlebot.com/bot.html)', 'googlebot', 0, '0000-00-00 00:00:00','');<br>INSERT INTO `naps_stats_bot` VALUES (2, 'MSNbot', 'MSNBOT/0.1(http://search.msn.com/msnbot.htm)', 'msnbot', 0, '0000-00-00 00:00:00', '');<br>INSERT INTO `naps_stats_bot` VALUES (3, 'Inktomi Slurp', 'Slurp/2.0', 'slurp',0, '0000-00-00 00:00:00', '');<br>INSERT INTO `naps_stats_bot` VALUES (4, 'Baiduspider','Baiduspider+(+http://www.baidu.com/search/spider.htm)', 'baiduspider', 0,'0000-00-00 00:00:00', '');<br>INSERT INTO `naps_stats_bot` VALUES (5, 'Yahoobot','Mozilla/5.0+(compatible;+Yahoo!+Slurp;+http://help.yahoo.com/help/us/ysearch/slurp)','slurp', 0, '0000-00-00 00:00:00', '');<br>INSERT INTO `naps_stats_bot` VALUES (6, 'Sohubot', 'sohu-search','sohu-search', 0, '0000-00-00 00:00:00', '');<br>INSERT INTO `naps_stats_bot` VALUES (7, 'Lycos', 'Lycos/x.x', 'lycos', 0,'0000-00-00 00:00:00', '');<br>INSERT INTO `naps_stats_bot` VALUES (8, 'Robozilla', 'Robozilla/1.0','robozilla', 0, '0000-00-00 00:00:00', '');<br>PHP程序:<br>[Copy to clipboard]<br>CODE:<br><?PHP<br>/***************************************************************************<br>* NAPS -- Network Article Publish System<br>* ----------------------------------------------<br>*                                bot.php<br>*                           -------------------<br>* begin               : 2004-08-15<br>* copyright            :(C) 2004 week9<br>*<br>***************************************************************************/<br>/***************************************************************************<br>*<br>*   This program is free software; you can redistribute it and/ormodify<br>*   it under the terms of the GNU General Public License as publishedby<br>*   the Free Software Foundation; either version 2 of the License.<br>*<br>***************************************************************************/<br>/***************************************************************************<br>*<br>*   NAPS产品是自由软件。你可以且必须根据《GNU GPL-GNU通用公共许可证》的相关规定<br>*   复制、修改及分发NAPS产品。任何以NAPS产品为基础的衍生发行版未必须经过飘飘的授权。<br>*<br>***************************************************************************/<br>error_reporting(E_ALL & ~E_NOTICE);<br>function get_naps_bot()<br>{<br>        $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);<br>                    <br>        if (strpos($useragent, 'googlebot')!== false){<br>               return 'Googlebot';<br>        }<br>     <br>        if (strpos($useragent, 'msnbot') !==false){<br>               return 'MSNbot';<br>        }<br>     <br>        if (strpos($useragent, 'slurp') !==false){<br>               return 'Yahoobot';<br>        }<br>     <br>        if (strpos($useragent,'baiduspider') !== false){<br>               return 'Baiduspider';<br>        }<br>     <br>        if (strpos($useragent,'sohu-search') !== false){<br>               return 'Sohubot';<br>        }<br>     <br>        if (strpos($useragent, 'lycos') !==false){<br>               return 'Lycos';<br>        }<br>     <br>        if (strpos($useragent, 'robozilla')!== false){<br>               return 'Robozilla';<br>       }     <br>        return false;<br>}<br>$tlc_thispage = addslashes($_SERVER['HTTP_USER_AGENT']);<br>//添加蜘蛛的抓取记录<br>$searchbot = get_naps_bot();<br>if ($searchbot) {<br>        $DB_naps->query("UPDATEnaps_stats_bot SET botcount=botcount+1, botlast=NOW(),botlasturl='$tlc_thispage' WHERE botname='$searchbot'");<br>}<br>?><br>引用方法:</p> <p>CODE:<br><img src="./bot.php"width="0" height="0"></p> <p>类似的浏览器和用户群也可分类。</p> <p>稍微改变一下,就是一个简易版的 网站访问日志 程序了。</p> <p><span style="color:#ff0000;">========================================================</span></p> <p> </p> <div id="xspace-relatives" class="xspace-msgmodule"> <h5>相关阅读:</h5> <ul class="xspace-list"> <li>小巧的Mysql数据库备份脚本(PHP) <span class="xspace-smalltxt">(黄河, 2009-1-07)</span> </li> <li>PHP抓取网页内容汇总 <span class="xspace-smalltxt">(黄河, 2009-1-07)</span> </li> <li>PHP抓取网页内容汇总2 <span class="xspace-smalltxt">(黄河, 2009-1-07)</span></li> </ul> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1296117517563011072"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(PHP)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1950185411020124160.htm" title="mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置" target="_blank">mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置</a> <span class="text-muted">AY05</span> <a class="tag" taget="_blank" href="/search/mac/1.htm">mac</a><a class="tag" taget="_blank" href="/search/os/1.htm">os</a><a class="tag" taget="_blank" href="/search/10.9/1.htm">10.9</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>#终端内运行sudoapachectlstart#启动Apachesudoapachectlrestart#重启Apachesudoapachectlstop#停止Apache#配置Apachesudovi/private/etc/apache2/httpd.conf#将里面的这一行去掉前面的##LoadModulephp5_modulelibexec/apache2/libphp5.so#配置P</div> </li> <li><a href="/article/1950169919731593216.htm" title="2022-01-13 天气晴 心情好" target="_blank">2022-01-13 天气晴 心情好</a> <span class="text-muted">楠楠的qzone</span> <div>今天主要是吧系统的一些功能给转移到另外一个系统上,然后遇到了一个很差劲的客户,不过呢我也是见多了不去计较了,因为什么样的人都有,平常心就好。晚上去吧thinkphp6的基础知识好好的看了一下,还是学到了很多好东西</div> </li> <li><a href="/article/1950161706533580800.htm" title="SQL笔记纯干货" target="_blank">SQL笔记纯干货</a> <span class="text-muted">AI入门修炼</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a> <div>软件:DataGrip2023.2.3,phpstudy_pro,MySQL8.0.12目录1.DDL语句(数据定义语句)1.1数据库操作语言1.2数据表操作语言2.DML语句(数据操作语言)2.1增删改2.2题2.3备份表3.DQL语句(数据查询语言)3.1查询操作3.2题一3.3题二4.多表详解4.1一对多4.2多对多5.多表查询6.窗口函数7.拓展:upsert8.sql注入攻击演示9.拆表</div> </li> <li><a href="/article/1950111659515244544.htm" title="从0到1学PHP(二):PHP 基本语法:构建代码的基石" target="_blank">从0到1学PHP(二):PHP 基本语法:构建代码的基石</a> <span class="text-muted">奔跑吧邓邓子</span> <a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E6%94%BB%E7%95%A5/1.htm">项目攻略</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95/1.htm">基本语法</a> <div>目录一、PHP标记与注释1.1PHP的起始和结束标记1.2单行注释和多行注释二、变量与数据类型2.1变量的定义、命名规则和使用方法2.2数据类型详解2.3数据类型的转换三、运算符与表达式3.1各类运算符的使用3.2表达式的组成和运算规则一、PHP标记与注释1.1PHP的起始和结束标记在PHP编程中,起始标记是极为重要的基础概念。当PHP解析器处理文件时,一旦识别到结束标记,标记之外的内容会被忽略。</div> </li> <li><a href="/article/1950106242563239936.htm" title="我的ThinkPHP5框架开发22讲:从入门到实践的探索之旅" target="_blank">我的ThinkPHP5框架开发22讲:从入门到实践的探索之旅</a> <span class="text-muted">a1237567892</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>我的ThinkPHP5框架开发22讲:从入门到实践的探索之旅在编程的世界里,框架就像是一座座灯塔,照亮着开发者前行的道路。而当我第一次接触到ThinkPHP5这个PHP框架时,它就像是我探索路上的那颗最亮的星。今天,我想和大家分享我的ThinkPHP5框架开发22讲,这是我从一个初学者到逐渐熟练的实践过程。第1讲:初识ThinkPHP5记得那是一个阳光明媚的周末,我在网上浏览PHP框架的资料时,偶</div> </li> <li><a href="/article/1950102838667440128.htm" title="开启 PHP 初阶之旅:解锁高效入门之道" target="_blank">开启 PHP 初阶之旅:解锁高效入门之道</a> <span class="text-muted">API_Zevin</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>在当今动态网页开发领域,PHP作为一门久经沙场的服务器端脚本语言,以其强大功能与广泛适用性,持续吸引着无数初学者踏入编程殿堂。若你决心攻克PHP,为Web开发世界添砖加瓦,一系列精准策略与实用方法将成为你加速入门的得力伙伴,引领你穿越初期懵懂,迈向熟练驾驭的新征程。一、筑牢基础:语法地基稳扎稳打PHP语法虽具灵活性,初学者仍需系统研习,构建扎实根基。从变量声明起步,领会PHP变量“$”符号前缀特色</div> </li> <li><a href="/article/1950101450294095872.htm" title="面试宝典" target="_blank">面试宝典</a> <span class="text-muted">phpdi</span> <div>1.引用变量考点引用变量定义:用不同的名字访问同一个变量内容cow机制遍历时的引用处理unset只会取消引用,不会销毁内存空间php中对象默认是引用传递,若需要复制,则需要使用clone2.常量及数据类型define,const;php5.6以用const定义常量不支持表达式;7种false情况:0,0.0,'','0',[],null,false;精度丢失;获取客户端,服务端ip;与app交互$</div> </li> <li><a href="/article/1950100058422702080.htm" title="从0到1学PHP(一):PHP 基础入门:开启后端开发之旅" target="_blank">从0到1学PHP(一):PHP 基础入门:开启后端开发之旅</a> <span class="text-muted"></span> <div>目录一、PHP简介与发展历程1.1PHP定义与特点1.2在后端开发中的地位1.3发展阶段及重要版本更新二、PHP开发环境搭建2.1Windows系统下搭建步骤2.2Mac系统下搭建方法及常用工具2.3适合初学者的集成开发环境三、第一个PHP程序3.1编写"HelloWorld"程序3.2程序基本结构和执行过程3.3PHP代码的嵌入方式(在HTML中)一、PHP简介与发展历程1.1PHP定义与特点P</div> </li> <li><a href="/article/1950099173521027072.htm" title="Ubuntu lamp" target="_blank">Ubuntu lamp</a> <span class="text-muted">会飞的灰大狼</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>Ubuntulamp前言在Ubuntu安装lamp架构我们了解到lamp是完整的架构我们前面了解到了集合了Linux系统apacheMySQL和PHP语言的完整架构我们前面说了Centos7中编译安装lamp那么我们去说一下在Ubuntu中安装‍‍安装apache2‍apt直接安装apache2apt-yinstallapache2‍启动apache2systemctlstartapache2#测</div> </li> <li><a href="/article/1950042324155297792.htm" title="网络安全第14集" target="_blank">网络安全第14集</a> <span class="text-muted">不灭锦鲤</span> <a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a> <div>前言:小迪安全14集,这集重点内容:0、什么是js渗透测试?在javascript中也存在变量和函数,存在可控变量和函数就有可能存在在漏洞,js开发的web应用和php、java开发的区别是,js能看得到的源代码,php看不到,但是风险就是未授权访问、配置信息泄露(加密算法、key秘钥等),源代码看得到,存在更多的url泄露,从而可能会出现未授权访问,从url,前提:web应用可以采用前端语言或后</div> </li> <li><a href="/article/1950035133826396160.htm" title="常见的Bug管理工具有哪些?(如JIRA、Bugzilla、禅道等)" target="_blank">常见的Bug管理工具有哪些?(如JIRA、Bugzilla、禅道等)</a> <span class="text-muted">海姐软件测试</span> <a class="tag" taget="_blank" href="/search/%E7%BC%BA%E9%99%B7%E7%AE%A1%E7%90%86/1.htm">缺陷管理</a><a class="tag" taget="_blank" href="/search/bug/1.htm">bug</a><a class="tag" taget="_blank" href="/search/jira/1.htm">jira</a> <div>一、主流Bug管理工具分类及特点1.商业/企业级工具JIRA(Atlassian)特点:高度可定制,支持敏捷开发,集成CI/CD(如Jenkins)、Confluence等。适用场景:中大型团队,需复杂工作流和扩展生态。费用:按用户数收费,提供云版和本地部署。MantisBT特点:开源但支持商业服务,轻量级,适合中小团队。亮点:支持邮件通知、自定义字段。部署:需自建服务器(PHP+MySQL)。T</div> </li> <li><a href="/article/1950018315271335936.htm" title="TP5中CURD那点事儿(五)" target="_blank">TP5中CURD那点事儿(五)</a> <span class="text-muted">铁匠简记</span> <div>模型关联一般说来模型关系包括一对一HAS_ONEBELONG_TO一对多HAS_MANYBELONG_TO多对多BELONGS_TO_MANY一对多一用户->多条评论Model层User模型Comment模型对应两张表名User.php中创建一个publiccomm()方法publicfunctioncomm(){//这是一个关系模型return$this->hasMany('Comment','</div> </li> <li><a href="/article/1950007019847086080.htm" title="开源TTS" target="_blank">开源TTS</a> <span class="text-muted">vanloswang</span> <a class="tag" taget="_blank" href="/search/%E7%BB%BC%E5%90%88/1.htm">综合</a><a class="tag" taget="_blank" href="/search/TTS/1.htm">TTS</a> <div>Ekhohttp://sourceforge.net/projects/e-guidedog/files/Ekho/http://www.eguidedog.net/ekho.phpflitehttp://www.speech.cs.cmu.edu/flite/</div> </li> <li><a href="/article/1949946363290644480.htm" title="PHP框架详解 - symfony框架" target="_blank">PHP框架详解 - symfony框架</a> <span class="text-muted">FLK_9090</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/symfony/1.htm">symfony</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>引言随着互联网技术的迅猛发展,Web应用程序的复杂性也在逐年增加。为了应对这种复杂性,开发者们需要更加高效、灵活的工具来简化开发流程、提高代码质量和维护性。在众多PHP框架中,Symfony凭借其模块化设计、高性能和丰富的文档支持,成为了众多开发者的首选。Symfony框架由法国公司SensioLabs开发并于2005年首次发布。它的设计哲学是为开发者提供一套高效且灵活的工具,帮助他们快速构建复杂</div> </li> <li><a href="/article/1949904273978486784.htm" title="博后" target="_blank">博后</a> <span class="text-muted">来自吐槽星</span> <div>德州TheUniversityofTexasMDAndersonCancerCenterhttps://bbs.pku.edu.cn/v2/post-read.php?bid=41&threadid=16325339纽约MemorialSloanKetteringCancerCenterhttp://www.miccai.org/jobs-posting/memorial-sloan-ketter</div> </li> <li><a href="/article/1949825050890792960.htm" title="JetBrains 2025 全家桶 IDEA、WebStorm、DataSpell、DataGrip、Pycharm、CLion、Rider、PhpStorm、GoLand" target="_blank">JetBrains 2025 全家桶 IDEA、WebStorm、DataSpell、DataGrip、Pycharm、CLion、Rider、PhpStorm、GoLand</a> <span class="text-muted"></span> <div>原文地址:JetBrains2025全家桶11合1含IDEA、PyCharm、DataGrip、WebStrom、GoLand、CLion、PhpStorm、DataSpell等JetBrains2025全家桶11合1包含:IDEA、WebStorm、DataSpell、DataGrip、Pycharm、RustRover、CLion、Rider、PhpStorm、RubyMine、GoLand。</div> </li> <li><a href="/article/1949785719769722880.htm" title="kh dksl.php,php中取得URL的根域名的代码" target="_blank">kh dksl.php,php中取得URL的根域名的代码</a> <span class="text-muted">克勒kk</span> <a class="tag" taget="_blank" href="/search/kh/1.htm">kh</a><a class="tag" taget="_blank" href="/search/dksl.php/1.htm">dksl.php</a> <div>php中取得URL的根域名的代码发布于2014-12-1310:14:08|121次阅读|评论:0|来源:网友投递PHP开源脚本语言PHP(外文名:HypertextPreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。本文为大家讲解的是php</div> </li> <li><a href="/article/1949693538908303360.htm" title="SMTPman,wp mail smtp轻松配置的连接指南" target="_blank">SMTPman,wp mail smtp轻松配置的连接指南</a> <span class="text-muted"></span> <div>SMTPman,wpmailsmtp轻松配置的连接指南很多站长会遇到默认发信失败、邮件被当垃圾邮件等问题,此时SMTPman,wpmailsmtp提供了稳定、安全的SMTP解决方案。选择SMTPman,wpmailsmtp,你将获得更高的邮件投递率和管理效率,让网站通讯变得更可靠。功能优势使用SMTPman,wpmailsmtp可以显著提升邮件发送成功率,因为默认的PHP邮件函数经常会被邮箱服务器</div> </li> <li><a href="/article/1949682445796306944.htm" title="SMTPman,php smtp发送邮件配置教程解析!" target="_blank">SMTPman,php smtp发送邮件配置教程解析!</a> <span class="text-muted">tomcsdn31</span> <a class="tag" taget="_blank" href="/search/SMTP/1.htm">SMTP</a><a class="tag" taget="_blank" href="/search/%E9%82%AE%E4%BB%B6%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">邮件服务器</a><a class="tag" taget="_blank" href="/search/%E9%82%AE%E4%BB%B6%E8%90%A5%E9%94%80/1.htm">邮件营销</a><a class="tag" taget="_blank" href="/search/%E9%82%AE%E4%BB%B6%E7%BE%A4%E5%8F%91/1.htm">邮件群发</a><a class="tag" taget="_blank" href="/search/%E8%90%A5%E9%94%80%E9%82%AE%E4%BB%B6/1.htm">营销邮件</a><a class="tag" taget="_blank" href="/search/%E9%82%AE%E4%BB%B6%E6%8E%A5%E5%8F%A3/1.htm">邮件接口</a><a class="tag" taget="_blank" href="/search/SMTP%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">SMTP服务器</a> <div>SMTPman,phpsmtp发送邮件配置教程解析!不论是用户注册验证,还是系统通知,SMTPman,phpsmtp发送邮件都能保证邮件稳定送达。选择SMTPman,phpsmtp发送邮件的方式,可以有效提高送达率,且SMTPman,phpsmtp发送邮件配置灵活,适合各种环境。配置参数要成功实现SMTPman,phpsmtp发送邮件,必须配置正确的服务器参数。SMTPman,phpsmtp发送邮</div> </li> <li><a href="/article/1949679420335779840.htm" title="防伪溯源一体化管理系统解决方案" target="_blank">防伪溯源一体化管理系统解决方案</a> <span class="text-muted">春城一个人的莎士比亚</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99%E5%B0%8F%E7%A8%8B%E5%BA%8F%E8%BD%AF%E4%BB%B6%E5%AE%9A%E5%88%B6%E5%BC%80%E5%8F%91/1.htm">网站小程序软件定制开发</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90/1.htm">防伪溯源</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">防伪溯源小程序</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/1.htm">防伪溯源解决方案</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90%E6%96%B9%E6%B3%95/1.htm">防伪溯源方法</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90%E8%BD%AF%E4%BB%B6/1.htm">防伪溯源软件</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90%E4%B8%80%E7%89%A9%E4%B8%80%E7%A0%81/1.htm">防伪溯源一物一码</a> <div>防伪溯源一体化管理系统一款基于FA+ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯</div> </li> <li><a href="/article/1949675764353921024.htm" title="宝塔开放php openssl,[教程]Centos宝塔面板升级openssl增强nginxSSL安全性,openssl开启Http/2,Centos升级openssl..." target="_blank">宝塔开放php openssl,[教程]Centos宝塔面板升级openssl增强nginxSSL安全性,openssl开启Http/2,Centos升级openssl...</a> <span class="text-muted">weixin_39956353</span> <a class="tag" taget="_blank" href="/search/%E5%AE%9D%E5%A1%94%E5%BC%80%E6%94%BEphp/1.htm">宝塔开放php</a><a class="tag" taget="_blank" href="/search/openssl/1.htm">openssl</a> <div>由于本站是采用的Centos7+宝塔面板搭建的LNMP环境,但是Centos7默认的openssl版本又太低,根据“漏洞参考这里:https://www.trustasia.com/OpenSSL-CVE-2016-2107-Padding-Oracle”查看这篇文章发现openssl低版本已经有一堆漏洞了,所以就萌生了升级openssl版本的想法。配置完后如图:openssl版本低会导致无论你怎</div> </li> <li><a href="/article/1949673747258601472.htm" title="探索PHP中的六边形架构:代码实践与设计哲学" target="_blank">探索PHP中的六边形架构:代码实践与设计哲学</a> <span class="text-muted">脑叔</span> <a class="tag" taget="_blank" href="/search/%E5%85%AD%E8%BE%B9%E5%BD%A2%E6%9E%B6%E6%9E%84/1.htm">六边形架构</a><a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E9%A2%86%E5%9F%9F%E6%9C%8D%E5%8A%A1/1.htm">领域服务</a><a class="tag" taget="_blank" href="/search/%E4%BE%9D%E8%B5%96%E8%A7%84%E5%88%99/1.htm">依赖规则</a><a class="tag" taget="_blank" href="/search/UseCase%E5%AF%B9%E8%B1%A1/1.htm">UseCase对象</a> <div>探索PHP中的六边形架构:代码实践与设计哲学背景简介本文基于书籍《AppendixA:HexagonalArchitecturewithPHP》的第43章内容,探讨了在PHP中实现六边形架构的实践方法和背后的设计哲学。六边形架构作为一种软件设计模式,旨在帮助开发者创建易于编写、测试和维护的应用程序。六边形架构的实践在软件开发中,业务规则与基础设施之间应该有清晰的分界。六边形架构通过端口和适配器的概</div> </li> <li><a href="/article/1949672864923840512.htm" title="【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp)" target="_blank">【全开源】防伪溯源一体化管理系统源码(FastAdmin+ThinkPHP和Uniapp)</a> <span class="text-muted">现任明教教主~</span> <a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">微信小程序</a> <div>一款基于FastAdmin+ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯、自定义</div> </li> <li><a href="/article/1949667067846258688.htm" title="【PHP开发900个实用技巧】779.PHP应用分层:告别面条代码的“结构化思维”" target="_blank">【PHP开发900个实用技巧】779.PHP应用分层:告别面条代码的“结构化思维”</a> <span class="text-muted">精通代码大仙</span> <a class="tag" taget="_blank" href="/search/PHP%E5%BC%80%E5%8F%91900%E4%B8%AA%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/1.htm">PHP开发900个实用技巧</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98%E5%88%9B%E5%AF%8C/1.htm">程序员创富</a> <div>【颠覆你的代码习惯】779招PHP分层秘籍:从"意大利面条"到"千层蛋糕"的华丽蜕变——结构化思维让你代码清爽如风!779.PHP应用分层:告别面条代码的'结构化思维'表现层:直面用户的'门面担当'业务层:核心逻辑的'指挥官'数据访问层:数据库的'翻译官'工具层:重复劳动的'终结者'痛点分析:用户交互和业务纠缠?解决:剥离HTML模板引擎痛点分析:业务逻辑到处复制?解决:封装可复用的Service</div> </li> <li><a href="/article/1949666941572542464.htm" title="【PHP开发900个实用技巧】767.模板方法模式(Template Method):PHP算法骨架定义的“行为蓝图”" target="_blank">【PHP开发900个实用技巧】767.模板方法模式(Template Method):PHP算法骨架定义的“行为蓝图”</a> <span class="text-muted">精通代码大仙</span> <a class="tag" taget="_blank" href="/search/PHP%E5%BC%80%E5%8F%91900%E4%B8%AA%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/1.htm">PHP开发900个实用技巧</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E8%A3%85%E9%A5%B0%E5%99%A8%E6%A8%A1%E5%BC%8F/1.htm">装饰器模式</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98%E5%88%9B%E5%AF%8C/1.htm">程序员创富</a> <div>一招破解"复制粘贴炼狱"!模板方法模式让你在PHP中定义算法骨架,代码复用率飙升200%——这才是优雅开发的核心密码!PHP模板方法模式行为蓝图设计1.是什么?算法骨架初体验重复代码困境模式定义解析2.怎么做?实现步骤解析抽象类搭建钩子方法妙用3.实战:框架应用案例Laravel示例支付流程设计4.陷阱警报过度继承灾难违反里氏替换5.高级进化论策略模式组合回调函数变体目录:是什么?算法骨架初体验怎</div> </li> <li><a href="/article/1949666815160414208.htm" title="【PHP开发900个实用技巧】765.代理模式(Proxy):PHP控制对象访问的“智能门卫”" target="_blank">【PHP开发900个实用技巧】765.代理模式(Proxy):PHP控制对象访问的“智能门卫”</a> <span class="text-muted">精通代码大仙</span> <a class="tag" taget="_blank" href="/search/PHP%E5%BC%80%E5%8F%91900%E4%B8%AA%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/1.htm">PHP开发900个实用技巧</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E8%A3%85%E9%A5%B0%E5%99%A8%E6%A8%A1%E5%BC%8F/1.htm">装饰器模式</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98%E5%88%9B%E5%AF%8C/1.htm">程序员创富</a> <div>PHP访问控制的“智能管家”:揭秘代理模式如何让对象访问更安全、更高效本文深度剖析PHP代理模式的实战技巧,直击对象访问中的3大痛点,通过真实代码案例教你打造轻量级“访问门卫”,解决性能损耗、权限失控、代码臃肿难题。掌握这招,让你的PHP对象像VIP一样拥有专属管家!代理模式(Proxy)”智能门卫1.代理模式是什么2.为啥需要看门人?3.PHP实战三剑客4.典型场景避坑指南结构:代理器+本体访问</div> </li> <li><a href="/article/1949657358804250624.htm" title="【最新版】防伪溯源一体化管理系统+uniapp前端+搭建教程" target="_blank">【最新版】防伪溯源一体化管理系统+uniapp前端+搭建教程</a> <span class="text-muted">fakaifa</span> <a class="tag" taget="_blank" href="/search/fakaifa%E7%B2%BE%E5%93%81%E6%BA%90%E7%A0%81/1.htm">fakaifa精品源码</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%B0%8F%E7%A8%8B%E5%BA%8F/1.htm">小程序</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/crmeb/1.htm">crmeb</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90%E4%B8%80%E4%BD%93%E5%8C%96/1.htm">防伪溯源一体化</a><a class="tag" taget="_blank" href="/search/%E9%98%B2%E4%BC%AA%E6%BA%AF%E6%BA%90%E7%B3%BB%E7%BB%9F/1.htm">防伪溯源系统</a> <div>一.介绍防伪溯源一体化管理系统基于ThinkPHP和Uniapp进行开发的多平台(微信小程序、H5网页)溯源、防伪、管理一体化独立系统,拥有强大的防伪码和溯源码双码生成功能(内置多种生成规则)、批量大量导出防伪和溯源码码数据、支持代理商管理端(团队管理、采购,邀请代理商、出库等功能)、支持招商经理管理端(可管理代理商团队,邀请代理商,数据统计,采购订单统计),支持出厂员端(出库、入库)、文章资讯、</div> </li> <li><a href="/article/1949656349495324672.htm" title="【PHP开发900个实用技巧】766.命令模式(Command):PHP请求封装的“行为胶囊”" target="_blank">【PHP开发900个实用技巧】766.命令模式(Command):PHP请求封装的“行为胶囊”</a> <span class="text-muted">精通代码大仙</span> <a class="tag" taget="_blank" href="/search/PHP%E5%BC%80%E5%8F%91900%E4%B8%AA%E5%AE%9E%E7%94%A8%E6%8A%80%E5%B7%A7/1.htm">PHP开发900个实用技巧</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E8%A3%85%E9%A5%B0%E5%99%A8%E6%A8%A1%E5%BC%8F/1.htm">装饰器模式</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98%E5%88%9B%E5%AF%8C/1.htm">程序员创富</a> <div>封请求为命令,藏万物于胶囊!行为解耦的艺术让PHP开发告别千行if-else的黑暗时代,构建可逆可扩展的弹性系统。命令模式:行为胶囊设计1.什么是行为胶囊?2.PHP四大组件解析3.实战解耦案例4.为何值得封装?5.经典应用场景目录:什么是行为胶囊?——把请求变成对象的神奇魔法PHP四大组件解析——Invoker/Command/Receiver/Client四角关系实战解耦案例——订单系统如何告</div> </li> <li><a href="/article/1949600877841018880.htm" title="如何入门搭建Laravel框架(教程)" target="_blank">如何入门搭建Laravel框架(教程)</a> <span class="text-muted"></span> <div>随着互联网的发展,web开发的需求日益增长。在web开发领域,php语言一直扮演着重要的角色,而laravel就是php语言下一个备受欢迎的web开发框架。在本文中,我们将介绍如何入门搭建laravel框架。一、Laravel介绍Laravel是一个开源的PHPWeb框架,由TaylorOtwell在2011年创建。Laravel框架是基于MVC模式构建的,它提供了一系列灵活的工具和组件,能够帮助</div> </li> <li><a href="/article/1949595205397180416.htm" title="PHP框架之Laravel框架" target="_blank">PHP框架之Laravel框架</a> <span class="text-muted"></span> <div>Laravel框架详解Laravel,作为一款广受欢迎的PHPWeb开发框架,以其优雅、简洁的语法和强大的功能特性,赢得了全球众多开发者的青睐。下面,我们将从Laravel的特点、应用案例以及具体的框架使用等方面进行详细解析。一、Laravel框架的特点优雅的语法Laravel框架采用简洁、优雅的语法,使得开发者能够编写出易于阅读和维护的代码。例如,通过EloquentORM,开发者可以方便地进行</div> </li> <li><a href="/article/46.htm" title="Maven" target="_blank">Maven</a> <span class="text-muted">Array_06</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>Maven Maven是基于项目对象模型(POM), 信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司</div> </li> <li><a href="/article/173.htm" title="ibatis的queyrForList和queryForMap区别" target="_blank">ibatis的queyrForList和queryForMap区别</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a> <div>一.说明         iBatis的返回值参数类型也有种:resultMap与resultClass,这两种类型的选择可以用两句话说明之:         1.当结果集列名和类的属性名完全相对应的时候,则可直接用resultClass直接指定查询结果类</div> </li> <li><a href="/article/300.htm" title="LeetCode[位运算] - #191 计算汉明权重" target="_blank">LeetCode[位运算] - #191 计算汉明权重</a> <span class="text-muted">Cwind</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a> <div>原题链接:#191 Number of 1 Bits 要求: 写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。 汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。 难度:简单 分析: 将十进制参数转换为二进制,然后计算其中1的个数即可。 “</div> </li> <li><a href="/article/427.htm" title="浅谈java类与对象" target="_blank">浅谈java类与对象</a> <span class="text-muted">15700786134</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>      java是一门面向对象的编程语言,类与对象是其最基本的概念。所谓对象,就是一个个具体的物体,一个人,一台电脑,都是对象。而类,就是对象的一种抽象,是多个对象具有的共性的一种集合,其中包含了属性与方法,就是属于该类的对象所具有的共性。当一个类创建了对象,这个对象就拥有了该类全部的属性,方法。相比于结构化的编程思路,面向对象更适用于人的思维</div> </li> <li><a href="/article/554.htm" title="linux下双网卡同一个IP" target="_blank">linux下双网卡同一个IP</a> <span class="text-muted">被触发</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>转自: http://q2482696735.blog.163.com/blog/static/250606077201569029441/ 由于需要一台机器有两个网卡,开始时设置在同一个网段的IP,发现数据总是从一个网卡发出,而另一个网卡上没有数据流动。网上找了下,发现相同的问题不少: 一、 关于双网卡设置同一网段IP然后连接交换机的时候出现的奇怪现象。当时没有怎么思考、以为是生成树</div> </li> <li><a href="/article/681.htm" title="安卓按主页键隐藏程序之后无法再次打开" target="_blank">安卓按主页键隐藏程序之后无法再次打开</a> <span class="text-muted">肆无忌惮_</span> <a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%8D%93/1.htm">安卓</a> <div>遇到一个奇怪的问题,当SplashActivity跳转到MainActivity之后,按主页键,再去打开程序,程序没法再打开(闪一下),结束任务再开也是这样,只能卸载了再重装。而且每次在Log里都打印了这句话"进入主程序"。后来发现是必须跳转之后再finish掉SplashActivity   本来代码:   // 销毁这个Activity fin</div> </li> <li><a href="/article/808.htm" title="通过cookie保存并读取用户登录信息实例" target="_blank">通过cookie保存并读取用户登录信息实例</a> <span class="text-muted">知了ing</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a> <div>通过cookie的getCookies()方法可获取所有cookie对象的集合;通过getName()方法可以获取指定的名称的cookie;通过getValue()方法获取到cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。 下面通过cookie保存并读取用户登录信息的例子加深一下理解。 (1)创建index.jsp文件。在改</div> </li> <li><a href="/article/935.htm" title="JAVA 对象池" target="_blank">JAVA 对象池</a> <span class="text-muted">矮蛋蛋</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ObjectPool/1.htm">ObjectPool</a> <div>原文地址: http://www.blogjava.net/baoyaer/articles/218460.html Jakarta对象池       ☆为什么使用对象池   恰当地使用对象池化技术,可以有效地减少对象生成和初始化时的消耗,提高系统的运行效率。Jakarta Commons Pool组件提供了一整套用于实现对象池化</div> </li> <li><a href="/article/1062.htm" title="ArrayList根据条件+for循环批量删除的方法" target="_blank">ArrayList根据条件+for循环批量删除的方法</a> <span class="text-muted">alleni123</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>场景如下: ArrayList<Obj> list Obj-> createTime, sid. 现在要根据obj的createTime来进行定期清理。(释放内存) ------------------------- 首先想到的方法就是 for(Obj o:list){ if(o.createTime-currentT>xxx){ </div> </li> <li><a href="/article/1189.htm" title="阿里巴巴“耕地宝”大战各种宝" target="_blank">阿里巴巴“耕地宝”大战各种宝</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E5%B9%B3%E5%8F%B0%E6%88%98%E7%95%A5/1.htm">平台战略</a> <div>“耕地保”平台是阿里巴巴和安徽农民共同推出的一个 “首个互联网定制私人农场”,“耕地宝”由阿里巴巴投入一亿 ,主要是用来进行农业方面,将农民手中的散地集中起来 不仅加大农民集体在土地上面的话语权,还增加了土地的流通与 利用率,提高了土地的产量,有利于大规模的产业化的高科技农业的 发展,阿里在农业上的探索将会引起新一轮的产业调整,但是集体化之后农民的个体的话语权 将更少,国家应出台相应的法律法规保护</div> </li> <li><a href="/article/1316.htm" title="Spring注入有继承关系的类(1)" target="_blank">Spring注入有继承关系的类(1)</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>一个类一个类的注入 1.AClass类 package com.bijian.spring.test2; public class AClass { String a; String b; public String getA() { return a; } public void setA(Strin</div> </li> <li><a href="/article/1443.htm" title="30岁转型期你能否成为成功人士" target="_blank">30岁转型期你能否成为成功人士</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%88%90%E5%8A%9F/1.htm">成功</a> <div>        很多人由于年轻时走了弯路,到了30岁一事无成,这样的例子大有人在。但同样也有一些人,整个职业生涯都发展得很优秀,到了30岁已经成为职场的精英阶层。由于做猎头的原因,我们接触很多30岁左右的经理人,发现他们在职业发展道路上往往有很多致命的问题。在30岁之前,他们的职业生涯表现很优秀,但从30岁到40岁这一段,很多人</div> </li> <li><a href="/article/1570.htm" title="[Velocity三]基于Servlet+Velocity的web应用" target="_blank">[Velocity三]基于Servlet+Velocity的web应用</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a> <div>什么是VelocityViewServlet 使用org.apache.velocity.tools.view.VelocityViewServlet可以将Velocity集成到基于Servlet的web应用中,以Servlet+Velocity的方式实现web应用   Servlet + Velocity的一般步骤 1.自定义Servlet,实现VelocityViewServl</div> </li> <li><a href="/article/1697.htm" title="【Kafka十二】关于Kafka是一个Commit Log Service" target="_blank">【Kafka十二】关于Kafka是一个Commit Log Service</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/service/1.htm">service</a> <div>Kafka is a distributed, partitioned, replicated commit log service.这里的commit log如何理解?   A message is considered "committed" when all in sync replicas for that partition have applied i</div> </li> <li><a href="/article/1824.htm" title="NGINX + LUA实现复杂的控制" target="_blank">NGINX + LUA实现复杂的控制</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/lua+nginx+%E6%8E%A7%E5%88%B6/1.htm">lua nginx 控制</a> <div>安装lua_nginx_module 模块 lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty Centos和debian的安装就简单了。。 这里说下freebsd的安装: fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz tar zxvf lua-5.1.4.tar.gz cd lua-5.1.4 ma</div> </li> <li><a href="/article/1951.htm" title="java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字" target="_blank">java-14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class TwoElementEqualSum { /** * 第 14 题: 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是 O(n) 。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组 1 、 2 、 4 、 7 、 11 、 15 和数字 15 。由于 </div> </li> <li><a href="/article/2078.htm" title="Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder" target="_blank">Netty源码学习-HttpChunkAggregator-HttpRequestEncoder-HttpResponseDecoder</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/netty/1.htm">netty</a> <div>今天看Netty如何实现一个Http Server org.jboss.netty.example.http.file.HttpStaticFileServerPipelineFactory: pipeline.addLast("decoder", new HttpRequestDecoder()); pipeline.addLast(&quo</div> </li> <li><a href="/article/2205.htm" title="java敏感词过虑-基于多叉树原理" target="_blank">java敏感词过虑-基于多叉树原理</a> <span class="text-muted">cngolon</span> <a class="tag" taget="_blank" href="/search/%E8%BF%9D%E7%A6%81%E8%AF%8D%E8%BF%87%E8%99%91/1.htm">违禁词过虑</a><a class="tag" taget="_blank" href="/search/%E6%9B%BF%E6%8D%A2%E8%BF%9D%E7%A6%81%E8%AF%8D/1.htm">替换违禁词</a><a class="tag" taget="_blank" href="/search/%E6%95%8F%E6%84%9F%E8%AF%8D%E8%BF%87%E8%99%91/1.htm">敏感词过虑</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E5%8F%89%E6%A0%91/1.htm">多叉树</a> <div>基于多叉树的敏感词、关键词过滤的工具包,用于java中的敏感词过滤 1、工具包自带敏感词词库,第一次调用时读入词库,故第一次调用时间可能较长,在类加载后普通pc机上html过滤5000字在80毫秒左右,纯文本35毫秒左右。   2、如需自定义词库,将jar包考入WEB-INF工程的lib目录,在WEB-INF/classes目录下建一个 utf-8的words.dict文本文件,</div> </li> <li><a href="/article/2332.htm" title="多线程知识" target="_blank">多线程知识</a> <span class="text-muted">cuishikuan</span> <a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div> T1,T2,T3三个线程工作顺序,按照T1,T2,T3依次进行 public class T1 implements Runnable{           @Override      </div> </li> <li><a href="/article/2459.htm" title="spring整合activemq" target="_blank">spring整合activemq</a> <span class="text-muted">dalan_123</span> <a class="tag" taget="_blank" href="/search/java+spring+jms/1.htm">java spring jms</a> <div>整合spring和activemq需要搞清楚如下的东东1、ConnectionFactory分:     a、spring管理连接到activemq服务器的管理ConnectionFactory也即是所谓产生到jms服务器的链接      b、真正产生到JMS服务器链接的ConnectionFactory还得</div> </li> <li><a href="/article/2586.htm" title="MySQL时间字段究竟使用INT还是DateTime?" target="_blank">MySQL时间字段究竟使用INT还是DateTime?</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>  环境:Windows XPPHP Version 5.2.9MySQL Server 5.1 第一步、创建一个表date_test(非定长、int时间) CREATE TABLE `test`.`date_test` (`id` INT NOT NULL AUTO_INCREMENT ,`start_time` INT NOT NULL ,`some_content`</div> </li> <li><a href="/article/2713.htm" title="Parcel: unable to marshal value" target="_blank">Parcel: unable to marshal value</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/marshal/1.htm">marshal</a> <div>在两个activity直接传递List<xxInfo>时,出现Parcel: unable to marshal value异常。   在MainActivity页面(MainActivity页面向NextActivity页面传递一个List<xxInfo>):   Intent intent = new Intent(this, Next</div> </li> <li><a href="/article/2840.htm" title="linux进程的查看上(ps)" target="_blank">linux进程的查看上(ps)</a> <span class="text-muted">eksliang</span> <a class="tag" taget="_blank" href="/search/linux+ps/1.htm">linux ps</a><a class="tag" taget="_blank" href="/search/linux+ps+-l/1.htm">linux ps -l</a><a class="tag" taget="_blank" href="/search/linux+ps+aux/1.htm">linux ps aux</a> <div>ps:将某个时间点的进程运行情况选取下来 转载请出自出处:http://eksliang.iteye.com/admin/blogs/2119469 http://eksliang.iteye.com         ps 这个命令的man page 不是很好查阅,因为很多不同的Unix都使用这儿ps来查阅进程的状态,为了要符合不同版本的需求,所以这个</div> </li> <li><a href="/article/2967.htm" title="为什么第三方应用能早于System的app启动" target="_blank">为什么第三方应用能早于System的app启动</a> <span class="text-muted">gqdy365</span> <a class="tag" taget="_blank" href="/search/System/1.htm">System</a> <div>Android应用的启动顺序网上有一大堆资料可以查阅了,这里就不细述了,这里不阐述ROM启动还有bootloader,软件启动的大致流程应该是启动kernel -> 运行servicemanager 把一些native的服务用命令启动起来(包括wifi, power, rild, surfaceflinger, mediaserver等等)-> 启动Dalivk中的第一个进程Zygot</div> </li> <li><a href="/article/3094.htm" title="App Framework发送JSONP请求(3)" target="_blank">App Framework发送JSONP请求(3)</a> <span class="text-muted">hw1287789687</span> <a class="tag" taget="_blank" href="/search/jsonp/1.htm">jsonp</a><a class="tag" taget="_blank" href="/search/%E8%B7%A8%E5%9F%9F%E8%AF%B7%E6%B1%82/1.htm">跨域请求</a><a class="tag" taget="_blank" href="/search/%E5%8F%91%E9%80%81jsonp/1.htm">发送jsonp</a><a class="tag" taget="_blank" href="/search/ajax%E8%AF%B7%E6%B1%82/1.htm">ajax请求</a><a class="tag" taget="_blank" href="/search/%E8%B6%8A%E7%8B%B1%E8%AF%B7%E6%B1%82/1.htm">越狱请求</a> <div>App Framework 中如何发送JSONP请求呢? 使用jsonp,详情请参考:http://json-p.org/ 如何发送Ajax请求呢? (1)登录 /*** * 会员登录 * @param username * @param password */ var user_login=function(username,password){ // aler</div> </li> <li><a href="/article/3221.htm" title="发福利,整理了一份关于“资源汇总”的汇总" target="_blank">发福利,整理了一份关于“资源汇总”的汇总</a> <span class="text-muted">justjavac</span> <a class="tag" taget="_blank" href="/search/%E8%B5%84%E6%BA%90/1.htm">资源</a> <div>觉得有用的话,可以去github关注:https://github.com/justjavac/awesome-awesomeness-zh_CN 通用 free-programming-books-zh_CN 免费的计算机编程类中文书籍 精彩博客集合 hacke2/hacke2.github.io#2 ResumeSample 程序员简历</div> </li> <li><a href="/article/3348.htm" title="用 Java 技术创建 RESTful Web 服务" target="_blank">用 Java 技术创建 RESTful Web 服务</a> <span class="text-muted">macroli</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B/1.htm">编程</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a> <div>转载:http://www.ibm.com/developerworks/cn/web/wa-jaxrs/   JAX-RS (JSR-311) 【 Java API for RESTful Web Services 】是一种 Java™ API,可使 Java Restful 服务的开发变得迅速而轻松。这个 API 提供了一种基于注释的模型来描述分布式资源。注释被用来提供资源的位</div> </li> <li><a href="/article/3475.htm" title="CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项" target="_blank">CentOS6.5-x86_64位下oracle11g的安装详细步骤及注意事项</a> <span class="text-muted">超声波</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>前言: 这两天项目要上线了,由我负责往服务器部署整个项目,因此首先要往服务器安装oracle,服务器本身是CentOS6.5的64位系统,安装的数据库版本是11g,在整个的安装过程中碰到很多的坑,不过最后还是通过各种途径解决并成功装上了。转别写篇博客来记录完整的安装过程以及在整个过程中的注意事项。希望对以后那些刚刚接触的菜鸟们能起到一定的帮助作用。   安装过程中可能遇到的问题(注</div> </li> <li><a href="/article/3602.htm" title="HttpClient 4.3 设置keeplive 和 timeout 的方法" target="_blank">HttpClient 4.3 设置keeplive 和 timeout 的方法</a> <span class="text-muted">supben</span> <a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a> <div>ConnectionKeepAliveStrategy kaStrategy = new DefaultConnectionKeepAliveStrategy() { @Override public long getKeepAliveDuration(HttpResponse response, HttpContext context) { long keepAlive</div> </li> <li><a href="/article/3729.htm" title="Spring 4.2新特性-@Import注解的升级" target="_blank">Spring 4.2新特性-@Import注解的升级</a> <span class="text-muted">wiselyman</span> <a class="tag" taget="_blank" href="/search/spring+4/1.htm">spring 4</a> <div>3.1 @Import @Import注解在4.2之前只支持导入配置类 在4.2,@Import注解支持导入普通的java类,并将其声明成一个bean 3.2 示例 演示java类 package com.wisely.spring4_2.imp; public class DemoService { public void doSomethin</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>