分享150个PHP源码,总有一款适合您

news2024/9/28 15:20:16

PHP源码

分享150个PHP源码,总有一款适合您

下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,

150个PHP源码下载链接:https://pan.baidu.com/s/1PWajFunhPFyoNFGc6F4qSQ?pwd=0sq5 

提取码:0sq5

Python采集代码下载链接:采集代码.zip - 蓝奏云

ID&WLC文件管理v1.7 a01
风中的板砖文章管理系统BrickArticle System(BAS) v1.2 测试版
龙龙下载系统 v5.0
乌龙主页更新公告板 v1.0
Flash动画欣赏 2003 bete2
NUCLEUS博客系统中文版
把握商店购物系统 v1.2 演示版
漂流瓶 Drift Bottlev1.0 完全中文版
红帽网站文件管理 v3.8
红帽网站流量统计系统 v3.0 修正版
vcounter v1.0.270203(含简体包)
天津大学绿岛文学社文章系统
pkyForm v1.0(表单系统)
你易PHP友情链接 v1.0
君临天下WDB 黄金修正版
5mp3留言本
红帽网站流量统计系统 v2.1
PhpDown 派克网版
天空软件站绝对经典下载系统(php mysql版)
桃源多用户友情链接
Discuz! v1.03 正式版
PKY文章/新闻系统(pkyArticle)v2.0
PhotoPost v3.2.0

    base_url =  "https://down.chinaz.com" # 采集的网址
    save_path = "D:\\Freedom\\Sprider\\ChinaZ\\"
    sprider_count = 150 # 采集数量
    sprider_start_count=6910 #正在采集第480页的第9个资源,共499页资源 debug



    word_content_list = []
    folder_name = ""
    page_end_number=0
    max_pager=15 #每页的数量
    haved_sprider_count =0  # 已经采集的数量
    page_count = 1  # 每个栏目开始业务content="text/html; charset=gb2312"
    filter_down_file=[]

FXVBB v2.3.0A 正式版
理想搜索 v2.0
PostNuke v0.723 中文版本D RC 无雨修正版
蓝码文本新闻系统
Harvard.全球破解.音乐&MTV.歌词.FLASH动画PHP搜索引擎
4images v1.7 feixin汉化增强版
PHP初学者联盟文章管理程序 v0.72全功能测试版
理想搜索 v1.0
IPB(Invision Power Board) v1.1.2 hyper中文版
vBB v2.3.0 正式版黄金修正版本(仙境)BUild 0513
ID&WLC文件管理v1.7d(功能加强版)
SF日记本
Dream Club v0360(WDB修改版)
小林在贺卡 v0.1
Serv-U用户验证插件 FOR Discuz! v1.0x
世纪梦幻文本广告交换链
忆库相册(Eekoo photo)v1.0
MediPro城市分类信息系统 v5.1.5
酷蝶 XP 留言板(虐JUN妖HACK版)
WDB水晶论坛 v0720(未加密版)
WDB水晶论坛 v0720(加密版)
伊风留言(CW GBOOK)v1.0
伊风文章(html)系统
CMS SITE 汉化版


LMPoll 1.2.3 正式版
闪鼠留言本 v1.0
文章管理程序 v0.72 全功能版
TBOOK 盛夏测试版
铭少Web邮件发送器 v3.4 alpha版
LMPoll v1.2.1 正式版
包包下载 - 小型下载系统 v1.4 Build0430 电影版
ID&WLC文件管理v1.7c(最终完美版)
酷蝶 XP 留言簿 20030417

    def __init__(self):
        pass

    def sprider(self,title_name="NET"):

        """
       采集
       PHP https://down.chinaz.com/class/572_5_1.htm
       NET https://down.chinaz.com/class/572_4_1.htm
       ASP https://down.chinaz.com/class/572_3_1.htm
       Python https://down.chinaz.com/class/604_572_1.htm
            https://down.chinaz.com/class/608_572_1.htm
        微信 https://down.chinaz.com/class/610_572_1.htm
       Ruby   https://down.chinaz.com/class/622_572_1.htm
       NodeJs https://down.chinaz.com/class/626_572_1.htm
       C https://down.chinaz.com/class/594_572_1.htm
       :return:
       """
        if title_name == "PHP":
            self.folder_name = "PHP源码"
            self.second_column_name = "572_5"
        elif title_name == "Go":
            self.folder_name = "Go源码"
            self.second_column_name = "606_572"
        elif title_name == "NET":
            self.folder_name = "NET源码"
            self.second_column_name = "572_4"
        elif title_name == "ASP":
            self.folder_name = "ASP源码"
            self.second_column_name = "572_3"
        elif title_name == "Python":
            self.folder_name = "Python源码"
            self.second_column_name = "604_572"
        elif title_name == "JavaScript":
            self.folder_name = "JavaScript源码"
            self.second_column_name = "602_572"
        elif title_name == "Java":
            self.folder_name = "Java源码"
            self.second_column_name = "572_517"
        elif title_name == "HTML":
            self.folder_name = "HTML-CSS源码"
            self.second_column_name = "608_572"
        elif title_name == "TypeScript":
            self.folder_name = "TypeScript源码"
            self.second_column_name = "772_572"
        elif title_name == "微信小程序":
            self.folder_name = "微信小程序源码"
            self.second_column_name = "610_572"
        elif title_name == "Ruby":
            self.folder_name = "Ruby源码"
            self.second_column_name = "622_572"
        elif title_name == "NodeJs":
            self.folder_name = "NodeJs源码"
            self.second_column_name = "626_572"
        elif title_name == "C++":
            self.folder_name = "C++源码"
            self.second_column_name = "596_572"
        elif title_name == "C":
            self.folder_name = "C源码"
            self.second_column_name = "594_572"
        #https://down.chinaz.com/class/594_572_1.htm


        first_column_name = title_name # 一级目录
        self.sprider_category = title_name  # 一级目录
        second_folder_name = str(self.sprider_count) + "个" + self.folder_name #二级目录
        self.sprider_type =second_folder_name
        self.merchant=int(self.sprider_start_count) //int(self.max_pager)+1 #起始页码用于效率采集
        self.file_path = self.save_path + os.sep + "Code" + os.sep + first_column_name + os.sep + second_folder_name
        self.save_path = self.save_path+ os.sep + "Code" + os.sep+first_column_name+os.sep + second_folder_name+ os.sep + self.folder_name
        BaseFrame().debug("开始采集ChinaZCode"+self.folder_name+"...")
        sprider_url = (self.base_url + "/class/{0}_1.htm".format(self.second_column_name))
        down_path="D:\\Freedom\\Sprider\\ChinaZ\\Code\\"+first_column_name+"\\"+second_folder_name+"\\Temp\\"
        if os.path.exists(down_path) is True:
            shutil.rmtree(down_path)
        if os.path.exists(down_path) is False:
            os.makedirs(down_path)

        if os.path.exists(self.save_path ) is True:
            shutil.rmtree(self.save_path )
        if os.path.exists(self.save_path ) is False:
            os.makedirs(self.save_path )
        chrome_options = webdriver.ChromeOptions()
        diy_prefs ={'profile.default_content_settings.popups': 0,
                    'download.default_directory':'{0}'.format(down_path)}
        # 添加路径到selenium配置中
        chrome_options.add_experimental_option('prefs', diy_prefs)
        chrome_options.add_argument('--headless') #隐藏浏览器

        # 实例化chrome浏览器时,关联忽略证书错误
        driver = webdriver.Chrome(options=chrome_options)
        driver.set_window_size(1280, 800)  # 分辨率 1280*800

        # driver.get方法将定位在给定的URL的网页,get接受url可以是任何网址,此处以百度为例
        driver.get(sprider_url)
        # content = driver.page_source
        # print(content)
        div_elem = driver.find_element(By.CLASS_NAME, "main")  # 列表页面 核心内容
        element_list = div_elem.find_elements(By.CLASS_NAME, 'item')

        laster_pager_ul = driver.find_element(By.CLASS_NAME, "el-pager")
        laster_pager_li =laster_pager_ul.find_elements(By.CLASS_NAME, 'number')
        laster_pager_url = laster_pager_li[len(laster_pager_li) - 1]
        page_end_number = int(laster_pager_url.text)
        self.page_count=self.merchant
        while self.page_count <= int(page_end_number):  # 翻完停止
            try:
                if self.page_count == 1:
                    self.sprider_detail(driver,element_list,self.page_count,page_end_number,down_path)
                    pass
                else:
                    if self.haved_sprider_count == self.sprider_count:
                        BaseFrame().debug("采集到达数量采集停止...")
                        BaseFrame().debug("开始写文章...")
                        self.builder_word(self.folder_name, self.word_content_list)
                        BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")
                        break
                    #(self.base_url + "/sort/{0}/{1}/".format(url_index, self.page_count))
                    #http://soft.onlinedown.net/sort/177/2/

                    next_url = self.base_url + "/class/{0}_{1}.htm".format(self.second_column_name, self.page_count)
                    driver.get(next_url)

                    div_elem = driver.find_element(By.CLASS_NAME, "main")  # 列表页面 核心内容
                    element_list = div_elem.find_elements(By.CLASS_NAME, 'item')
                    self.sprider_detail( driver, element_list, self.page_count, page_end_number, down_path)
                    pass
                #print(self.page_count)
                self.page_count = self.page_count + 1  # 页码增加1
            except Exception as e:
                print("sprider()执行过程出现错误:" + str(e))
                sleep(1)



古钺青剑论坛 v2.0
天气预报 v1.1
电视预告 v1.1
包包下载 - 小型下载系统 v1.2 Build0306 电影版
FLASHSHOW v1.3
Wish祈愿板
W8C WebFTP v1.4 中文版
Kevin GuestBook System(PHP TXT) v1.0
vgbmood留言本
君临天下WDB 完整安装版
MyRecover v0.04(超大数据库文件恢复系统)
wlc_fup bmb v1.0 修正版
wlc_fup Discuz! v1.02 稳定版
hightman 音乐全站程序 v1.0
warmsun留言板
YesIC Music System(冰冰音乐系统) v1.0
Dowebs!Chat v1.1
阳光论坛(WarmsunBoard) v01.2.0
yabbse v1.50 标准安装版
yabbse v1.50 完全版
yabbse v1.50 繁体标准安装版
discuz! v1.02 仿v2.0 安装版
友情同学录-9902特别版
时尚同学录 v0605 个人版
时尚同学录2003 春禧版
时尚留言簿多用户版 Build0921
思诺音乐收费下载系统(含烟修改版)
时尚站内公告系统 Build0920
手机号码吉凶预测 v1.0
WDB论坛阿宝修改加美化 v2.0 正式版
ID设计留言板 v2.0
PKY文章/新闻系统(pkyArticle)v0.99 B20030211
险情通讯录 v1.0
@domain 虚拟域名管理系统 v1.0
天空软件站绝对经典下载系统v2003
SiForce v1.00.2092 正式版
思诺影视系统 v5.0 免费版(disuz!论坛风格界面)
思诺影视系统 v5.0 免费版(淡雅型)
9om v3.0 新春特别版(仿google搜索引擎)
41197.com 同学录v1.0.2(加强版)
Anti Leech File Gate反盗链技术v1.5.4 BETA
k666 vbb论坛(自动生成HTML页)
cnphpbb.com 全站程序
cnphpbb 文章管理
oscommerce v2.2 CNPHPBB汉化版
PKY下载系统(pkyDown)v1.5b
Ice GD Cool Vote v0.1
交友热线 for mysql
Rarticle文章管理系统 v1.0 beta
Blue Magic Board v2.3
PhpBoard(PB2002) 2002.10.10
无影网页大挪移(网页神偷2003) 9omv1.0b 单用户版



    def sprider_detail(self, driver,element_list,page_count,max_page,down_path):
        """
        采集明细页面
        :param driver:
        :param element_list:
        :param page_count:
        :param max_page:
        :param down_path:
        :return:
        """
        index = 0
        element_array=[]
        element_length=len(element_list)
        for element in element_list:
            url_A_obj = element.find_element(By.CLASS_NAME,  'name-text')
            next_url = url_A_obj.get_attribute("href")
            coder_title = url_A_obj.get_attribute("title")
            e=coder_title+"$"+ next_url
            element_array.append(e)
            pass
        if int(self.page_count) == int(self.merchant):
            self.sprider_start_index = int(self.sprider_start_count) % int(self.max_pager)
            index=self.sprider_start_index
        while index < element_length:


            if os.path.exists(down_path) is False:
                os.makedirs(down_path)

            if self.haved_sprider_count == self.sprider_count:
                BaseFrame().debug("采集到达数量采集停止...")
                break

            #element = element_list[index]
            element=element_array[index]
            time.sleep(1)

            index = index + 1
            sprider_info="正在采集第"+str(page_count)+"页的第"+str(index)+"个资源,共"+str(max_page)+"页资源"
            BaseFrame().debug(sprider_info)
            next_url=element.split("$")[1]
            coder_title=element.split("$")[0]
            # next_url = element.find_element(By.TAG_NAME, 'a').get_attribute("href")
            # coder_title =element.find_element(By.TAG_NAME, 'img').get_attribute("title")

            try:
                codeEntity = SpriderEntity()  # 下载过的资源不再下载
                codeEntity.sprider_base_url = self.base_url
                codeEntity.create_datetime = SpriderTools.get_current_datetime()
                codeEntity.sprider_url = next_url
                codeEntity.sprider_pic_title = coder_title
                codeEntity.sprider_pic_index = str(index)
                codeEntity.sprider_pager_index = page_count
                codeEntity.sprider_type = self.sprider_type
                if SpriderAccess().query_sprider_entity_by_urlandindex(next_url, str(index)) is None:
                    SpriderAccess().save_sprider(codeEntity)
                else:
                    BaseFrame().debug(coder_title+next_url + "数据采集过因此跳过")
                    continue

                driver.get(next_url)  # 请求明细页面1
                if SeleniumTools.judeg_element_isexist(driver, "CLASS_NAME", "download-item") == 3:
                    driver.back()
                    BaseFrame().debug(coder_title+"不存在源码是soft因此跳过哦....")
                    continue
                print("准备点击下载按钮...")
                driver.find_element(By.CLASS_NAME, "download-item").click() #下载源码
                sleep(1)
                result,message=SpriderTools.judge_file_exist(True,240,1,down_path,self.filter_down_file,"zip|rar|gz|tgz")#判断源码
                if result is True:

                    sprider_content = [coder_title, self.save_path + os.sep +"image"+ os.sep + coder_title + ".jpg"]  # 采集成功的记录
                    self.word_content_list.append(sprider_content)  # 增加到最终的数组
                    self.haved_sprider_count = self.haved_sprider_count + 1
                    BaseFrame().debug("已经采集完成第" + str(self.haved_sprider_count) + "个")
                    time.sleep(1)
                    driver.back()

                    coder_title = str(coder_title).replace("::", "").replace("/", "").strip() #去掉windows不识别的字符

                    files = os.listdir(down_path)
                    file_name = files[0]  # 获取默认值

                    srcFile = down_path + os.sep + file_name
                    file_ext = os.path.splitext(srcFile)[-1]

                    dstFile = down_path + os.sep + coder_title + file_ext
                    os.rename(srcFile, dstFile)
                    srcFile = dstFile
                    dstFile = self.save_path + os.sep + coder_title + file_ext

                    shutil.move(srcFile, dstFile)  # 移动文件

                else:
                    files = os.listdir(down_path)  # 读取目录下所有文件
                    coder_title = str(coder_title).replace("/", "")  # 去掉windows不识别的字符
                    try:
                        if str(message)=="0个文件认定是False":
                            BaseFrame().error(coder_title+"文件不存在...")
                            shutil.rmtree(down_path)  # 如果没下载完是无法删除的
                            pass
                        else:
                            BaseFrame().error("检测下载文件出错可能原因是等待时间不够已经超时,再等待60秒...")
                            time.sleep(60)
                            shutil.rmtree(down_path) #如果没下载完是无法删除的
                            #清空数组
                            self.filter_down_file.clear()
                    except Exception as e:
                        # 使用数组append记录文件名字 移动的时候过滤
                        self.builder_filter_file(files)
                    pass
            except Exception as e:
                BaseFrame().error("sprider_detail()执行过程出现错误:" + str(e))
                BaseFrame().error("sprider_detail()记录下载的文件名")
                # 使用数组append记录文件名字 移动的时候过滤
                files = os.listdir(down_path)  # 读取目录下所有文件
                self.builder_filter_file(files)

        if(int(page_count)==int(max_page)):
            self.builder_word(self.folder_name,self.word_content_list)
            BaseFrame().debug("文件编写完毕,请到对应的磁盘查看word文件和下载文件!")



PHP MYSQL访问统计系统
paFileDB v3 中文版
4U - Library Manager(4U 书库)v2.0.1
PKY下载管理系统 v1.01Bulid 20021205
zChain留言簿2000多用户版 v2.50
PKY新闻管理-首页更新系统
MySoftware(软件下载系统) v0.1.1
HGB Book v021209 单用户版
多用户留言板(cuteBook)v2.0.1
vBB v2.x 到 CDB论坛转换程序
小罗天校友录 forDiscuz! v2.08稳定—测试版
LBXP/MX to Discuz! 转换程序
秋杉客的邮件列表
绝地文章管理系统(KArticle)v0.1
7744.net二级域名申请程序
QPBB L 正式版
逍遥留言本 2002 alpha0220 Build 0220 正式版
41197.com 同学录系 统完整修正版
夜猫下载laotong修改版 v1.1
南海黄页
php祈愿板
Brick BookMark v1.0(多用户版)
bookmark4u 多国语言版(网络书签系统)
YESPHP中文网下载程序(夜猫修改版)



    def builder_filter_file(self,files):
        """

        :param files:
        :return:
        """
        for file in files:
            if len(self.filter_down_file)==0:
                self.filter_down_file.append(str(file))
            for filter_file in self.filter_down_file:
                if str(file) in str(filter_file):
                    BaseFrame().error(filter_file + "文件存在...")
                    pass
                else:
                    self.filter_down_file.append(str(file))


    def builder_word(self, word_title, list_files):
        """
        输出产物是word文件
        :param word_title: 文件的标题
        :param save_path: 文件的保存路径
        :param list_files: 文件集合(单个内容)
        :return:
        """
        try:
            self.copy_file(self.save_path)

            print("Create Word:"+word_title)
            file_count= len(list_files)

            self.gen_passandtxt(file_count,word_title,list_files)
            random_full_file_name = SpriderTools.get_word_image(self.sprider_category,6)
            document = Document()
            document.add_heading(""+word_title+"", level=2)

            document.add_paragraph("分享"+str(file_count)+"个"+word_title+",总有一款适合您\r\n"
                                   "下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,")
            document.add_paragraph(""+str(file_count)+"个"+word_title+"下载")
            document.add_picture(random_full_file_name, width=Inches(3))
            ppt_tieles = ""
            for files in list_files:
                ppt_tieles = ppt_tieles + str(files[0]) + "\r"
            document.add_paragraph(ppt_tieles)
            # for files in list_files:
            #     try:
            #         document.add_paragraph(files[0])
            #         document.add_picture(files[1], width=Inches(3))
            #     except Exception as e:
            #         pass
            random_full_file_name1 = SpriderTools.get_word_image(self.sprider_category, 6)
            document.add_picture(random_full_file_name1, width=Inches(3))
            document.add_paragraph("最后送大家一首诗:")
            paragraph = document.add_paragraph()  # 单独控制
            paragraph.add_run("山高路远坑深,\r")
            paragraph.add_run("大军纵横驰奔,\r")
            paragraph.add_run("谁敢横刀立马?\r")
            paragraph.add_run("惟有点赞加关注大军。\r")
            paragraph.bold = True  # 字体加粗
            file_full_path=self.file_path+os.sep+word_title+".docx"
            document.save(file_full_path)
        except Exception as e:
            print("Create Word Fail reason:" + str(e))
    def copy_file(self,target_path):
        print("copy files")
        import os
        import shutil
        src_apk_file_path="亚丁号自动阅读_v0.0.53.apk"
        dst_apk_file_path=self.file_path+os.sep+"亚丁号自动阅读_v0.0.53.apk"
        shutil.copyfile(src_apk_file_path, dst_apk_file_path)  # 移动文件

        src_pdf_file_path = "薅羊毛专业版.pdf"
        dst_pdf_file_path = target_path + os.sep + "薅羊毛专业版.pdf"
        #shutil.copyfile(src_pdf_file_path, dst_pdf_file_path)  # 移动文件

        src_pdf_file_path = "亚丁号.url"
        dst_pdf_file_path = self.file_path  + os.sep + "亚丁号.url"
        shutil.copyfile(src_pdf_file_path, dst_pdf_file_path)  # 移动文件

        src_doc_file_path = "readme.docx"
        dst_doc_file_path = self.file_path + os.sep + "readme.docx"
        shutil.copyfile(src_doc_file_path, dst_doc_file_path)  # 移动文件

        pass
    def gen_passandtxt(self,file_count,word_title, list_files):

        print("Create PassWord and Pass.txt")
        message=SpriderTools.gen_password()
        password = "".join(message)
        content=""
        content = content + "\n分享"+str(file_count)+"个"+word_title+",总有一款适合您"
        content = content + "\n\r"
        content=content+"\n都到这里了您就支持一下呗!谢谢老铁~~"
        content=content+"\n\r"
        # content = content + "\n\r"
        # content = content + "\n\r"
        # for files in list_files:
        #     content = content+str(files[0])+ "\n"
        content=content+"\n文件我就不一一列举了,送老铁一首打油诗"
        content=content+"\n学习知识费力气,"
        content=content+"\n收集整理更不易。"
        content=content+"\n知识付费甚欢喜,"
        content=content+"\n为咱码农谋福利。"
        content=content+"\n\r"
        content=content+"\n\r"
        content=content+"\n感谢您的支持"
        content=content+"\n\r"
        content=content+"\n-------------------------------------------华丽分割线-------------------------------------------------------"
        content=content+"\n友情提醒解压密码:"+password+""

        full_path=self.file_path+os.sep+""+str(file_count)+"sell_pass.txt"
        with open(full_path, 'a', encoding='utf-8') as f:
            f.write(content)

vgmood留言本v1.02
@domain 虚拟域名管理 v1.2
@domain name v3.0 zend 增强版
9om 搜索引擎 v4.0 zend 版
9om 搜索引擎 v4.0 无须zend支持版
南海黄页(Ypages)Weblink
包包下载 - 小型下载系统 v1.3 Build0324 电影版
Any Classmate v0.9 简化版
PostNuke v0.723 中文版本D RC
MySoftware(软件管理系统) v0.2.1 beta 优化版
PKY下载系统(pkyDown)v2.0
MySoftware(软件下载系统) v0.20 beta
fbb v3.3 正式中文版
心动留言本(GC增强版) v2.1.1
C1G的PHP探针 v1.1 Build0315 风格版
思诺信息资料库管理系统 v1.0
PHP音乐搜索引擎 歌词增强版本 A 完整版
古钺青剑音频点播系统 v2.0

 

 

最后送大家一首诗:

山高路远坑深,
大军纵横驰奔,
谁敢横刀立马?
惟有点赞加关注大军。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/174930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux rm命令详解,Linux删除文件目录

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 rm 命令一、常用操作1. 删除文件2. 删除目录二、其他操作作用&#xff1a;删除文件或目录 参数&#xff1a; -f 直接删除&#xff0c…

steam/csgo搬砖项目真的假的?

本文全文干货分享&#xff0c;如果你想通过steam搬砖做副业赚钱&#xff0c;看这一篇就够了&#xff01; 这个项目是什么意思&#xff1f; 是不是你也很好奇这个玩法&#xff1f;我们先看下我们自己的数据&#xff0c;再来解释一下我们怎么赚的钱 一、项目原理 利用steam平台…

【Spring5源码学习】Spring基础介绍及调试环境搭建

Spring 是一款用于简化企业级 Java 应用开发的分层开源框架&#xff0c;有着强大的扩展和融合能力&#xff0c;它善于整合各种单层框架并建立起完整的体系&#xff0c;能高效统一的构造可提供企业级服务的应用系统。 1、Spring 概述 Spring Framework 是一个分层非常清晰并且依…

[C++]深复制与浅复制

深复制与浅复制 C中&#xff0c;默认的复制构造函数只能实现浅复制。 浅复制指的是在对象复制前&#xff0c;只对对象中的数据成员进行简单的复制 大多数情况下"浅复制"已经能很好的工作了&#xff0c;但是当类的数据成员中有指针类型时&#xff0c;浅复制只会复制指…

Gulp.Task 正解

gulp task 实现过程 今天从源码的角度分析下 gulp 中 task 的实现过程。多个 task 是如何执行&#xff1f;&#xff1f;&#xff1f; 等等 gulp 插件分布图 其实通过上述截图可以看到&#xff0c;其实整个 gulp 内部什么逻辑都没有&#xff0c;都是由一个一个插件组成的。上述的…

Java多线程案例之单例模式(饿汉,懒汉)

目录 一、饿汉模式 二、懒汉模式 前言&#xff1a;单例模式是校招中最常见的设计模式之一。下面我们来谈谈其中的两个模式&#xff1a;懒汉&#xff0c;饿汉。 何为设计模式&#xff1f; 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多…

《Linux性能优化实战》学习笔记 Day04

06 | 锁&#xff1a;如何根据业务场景选择合适的锁&#xff1f; 原文摘抄 当你无法判断锁住的代码会执行多久时&#xff0c;应该首选互斥锁&#xff0c;互斥锁是一种独占锁。 如果你能确定被锁住的代码执行时间很短&#xff0c;就应该用自旋锁取代互斥锁。 对于 99% 的线程…

工信部电子标准院:龙蜥操作系统获评“优秀”

近日&#xff0c;工信部中国电子技术标准化研究院公布第二批通过开源项目成熟度评估的开源项目名单&#xff0c;龙蜥操作系统&#xff08;Anolis OS&#xff09;凭借在生态构建、技术创新、应用落地等方面的成熟能力与卓越表现&#xff0c;顺利通过评估并获得优秀贰级&#xff…

简单说说什么是真的懂一道题了

昨天写了Richard的2022年一年级入学小结后&#xff0c;后台有读者问我怎么算真的懂一个知识点了&#xff0c;今天来简单说两句&#xff0c;大家都知道&#xff0c;求123…n的和&#xff0c;高斯的幼年成名作。Richard同学在上中班的时候&#xff0c;我就给他科普过高大神的事迹…

2023牛客寒假算法基础集训营3 -- E-公平守望的灯塔(向量 简单几何)

题目如下&#xff1a; 示例1 输入 1 0 0 1输出 0 0说明 输出1 1也是可以的。 思路 or 题解&#xff1a; 我们可以迅速找到 CCC 有两个位置满足题意&#xff0c;但 CCC 的坐标不一定是整数&#xff0c;我们需要 checkcheckcheck MMM 是 ABABAB 的中点 我们可以求出来 AM→…

「栈和队列」简析

前言 前言&#xff1a;研究一个数据结构的时候&#xff0c;首先讲的是增删改查。 文章目录前言一、简介1. 结构2. 特点3. 存储二、栈1. 类比举例2. 操作3. 实现1&#xff09;顺序栈&#xff08;常用&#xff09;a. 核心b. 要素c. 入栈d. 出栈2&#xff09;链式栈三、队列1. 类比…

Spring的Aware接口讲解,内含几篇参考文章

Aware接口文章一、使用Aware与不使用Aware的效果二、ApplicationContext实例介绍Aware三、从Aware顶级接口实现自己的XXXAware一、使用Aware与不使用Aware的效果 参考文章&#xff1a;Spring中的aware接口 定义BeanNameAware接口 public interface BeanNameAware extends Aw…

树的应用举例——并查集和树状数组

并查集 并查集是利用森林来描述一些不相交的集合&#xff0c;并支持集合的合并操作和查询操作。 假设有n个元素&#xff0c;分为m个不相交集合&#xff0c;一个集合构成一棵树&#xff0c;同一棵树&#xff08;集合&#xff09;中的元素地位相等。例如下图的森林表示一个包含…

【Python】Numpy多项式详解

文章目录多项式简介构造函数与图像运算符重载常用方法多项式简介 Numpy.polynomial中封装了六种多项式类&#xff0c;除了常规的多项式a0a1x⋯anxna_0a_1x\cdotsa_nx^na0​a1​x⋯an​xn之外&#xff0c;还有五种在数学、物理中常用的正交多项式&#xff0c;例如Hermite多项式…

祝贺!2022 Rust中文社区线上Hackathon评审结果出炉!

完全超出预期&#xff08;的优秀&#xff01;&#xff09;&#xff01;这次黑客松共有9支队伍闯入最后的评审会。他们是&#xff1a;233bithttps://github.com/rustcc/hackathon2022/tree/master/233bitRust 实现的 合成材料计算器EvolutionLabhttps://github.com/rustcc/hacka…

来自AI浩的新年祝福

大家好&#xff0c;感谢大家这一年来的关注和支持&#xff0c;在新春即将到来之际&#xff0c;AI浩祝大家&#xff1a; 祝大家新的一年里生活能够像下面的兔子那样&#xff0c;多彩多姿&#xff01; 祝愿大家&#xff0c;快乐常伴&#xff0c;笑口常开&#xff01; 在新的…

chfs安装使用注意事项及如何实现http外网访问

对于分享电脑上的文件&#xff0c;或与手机互传文件&#xff0c;除了 QQ、微信还有很多专业的工具&#xff0c;Cute Http File Server (缩写为 chfs)&#xff0c;就是一个免费小巧的 HTTP 文件共享服务器工具&#xff0c;它可以跨平台支持 Windows、Mac 和 Linux&#xff0c;只…

37岁被裁,但毫无遗憾:小镇出身,一穷二白,完整吃过互联网+房地产红利,现在上海有千万房产!...

有人被裁是失业&#xff0c;有人被裁是退休&#xff0c;有时候人类的悲欢真的不相通&#xff0c;来看看这位网友的故事&#xff1a;37岁&#xff0c;年底被裁&#xff0c;但是不留遗憾了。算是完整吃过一波互联网房地产红利&#xff0c;小镇出身&#xff0c;一穷二白&#xff0…

蚂蚁整改,暗藏深意

‍数据智能产业创新服务媒体——聚焦数智 改变商业互联网金融可以提升金融服务的效率和质量&#xff0c;促进传统产业转型升级&#xff0c;是资本竞相追逐的丛林&#xff0c;也是互联网巨头间相互争抢的战略高地。通过上市公司分拆子公司进行上市&#xff0c;可以获得一系列好…

C语言结构体 笔记

C语言提供结构体来管理不同类型的数据组合。C语言中的结构体类似于Java中的类。声明结构体类型定义变量名定义变量名和初始化结构体对齐结构体的大小必须是其最大成员的整数倍!&#xff08;1&#xff09;例如&#xff0c;此结构体的大小为16。因为double类型占8个字节&#xff…