源码

Linux 编译安装 php 扩展包 curl

旧巷老猫 提交于 2020-02-29 22:09:55
php源码目录: /root/php php编译目录:/usr/local/webserver/php/ curl源码目录:/root/curl 1.curl,主要用于发送http请求,是php的一个扩展包。 2.安装过程: (1)curl下载:http://curl.haxx.se/download.html (2)具体安装过程: 解压:tar -zxvf curl.tar.gz cd /(php源码目录,不是php编译目录)/ext/curl 运行phpize: /(php编译目录)/bin/phpize ./configure --with-php-config=/(php编译目录)/bin/php-config --with-curl=/(curl源码目录) make && make install 修改php.ini,增加:extension=curl.so(如果没有安装过其他php扩展,则需要同时配置extension_dir="/(php编译后目录)/lib/php/extensions/no-debug-non-zts-20121212/",上一个步骤生成.so文件的时候,会输出extension_dir目录) (3)检验是否安装成功: /(php编译后目录)/bin/php -m | grep curl ——正常打印curl,则表示安装成功(php

HashMap源码理解

折月煮酒 提交于 2020-02-29 22:02:15
private static int roundUpToPowerOf2(int number) { return number >= MAXIMUM_CAPACITY ? MAXIMUM_CAPACITY : (number > 1) ? Integer.highestOneBit((number - 1) << 1) : 1; } Integer.highestOneBit方法是获取不大于本身的2^n的值,那该方法具体含义是: 获取新的数组容量值,如果给定值大于等于最大的容量,则返回最大容量,否则:如果容量小于等于1,则返回1,否则返回大于等于给定值的最接近的 2^n的值 容量为什么要是2^n次方呢?且看如下代码: static int indexFor(int h, int length) { // assert Integer.bitCount(length) == 1 : "length must be a non-zero power of 2"; return h & (length-1); } 给方法是查找h(ash)在数组的索引位置;那现在看length为什么要是2^n次方呢? 点此查看 保证&之后的数据不大于length length-1之后,最低的n位都是1,那与h的&运算之后的值即是h的最低n位 采用length-1而不是直接length是因为2

selenium3源码解析Python篇(二)-异常类

試著忘記壹切 提交于 2020-02-29 20:34:50
本篇所讲的是关于selenium源码中的异常类 通过源码我们可以得知selenium的异常有很多 ErrorInResponseException InvalidSwitchToTargetException NoSuchFrameException NoSuchWindowException NoSuchElementException NoSuchAttributeException …… 以NoSuchElementException为例: 源码是这么描述的: 由此我们可以了解到,遇到此种错误,我们需要去检查以下几项: 1.您在查找中使用的选择器 2.元素在查找操作时可能尚未出现在屏幕上 3.网页仍在加载,如何编写等待包装器以等待元素出现 接下来我们介绍下selenium webdriver中常见的异常: NoSuchElementException 如上例子所属,属于没找到元素异常 NoSuchFrameException 没找到iframe异常 NoSuchWindowException 没找到窗口句柄异常 NoSuchAttributeException 属性错误异常(id=“kw” id为元素,kw为属性) NoAlertPresentException 没找到alert弹出框异常 ElementNotVisibleException 元素不可见异常

spring-mvc源码阅读笔记

爱⌒轻易说出口 提交于 2020-02-29 19:37:13
简要的做一些spring-mvc部分的源码学习笔记 Spring-mvc做的工作主要是俩大方面吧:一个是初始化一个ioc容器,一个是mvc部分的控制和视图模块的实现。 先说下ioc容器的初始化部分:ioc的初始化主要在俩个地方,一个是contextLoadListener里,另一个在DispatcherServlet里。 contextLoadListener: 在contextLoadListener里初始化的ioc容器是整个web项目里的一个父容器。整个初始化的过程也比较简单,首先是实例化一个context,具体是哪个context类呢,我们可以在web.xml的配置里指定,不过我们一般也不会指定这个参数,所以就直接实例化了一个默认的context-XmlWebApplicationContext。实例化以后,就开始加载我们配置文件里的那些bean。配置文件的位置我们一般都在web.xml里进行了配置。具体的加载的过程都在refresh()方法里。 这refresh方法里我们一般比较关心的是不同类型的bean的注册的过程还有实例化的过程。具体的注册过程就不再说了。 在注册完成后,会首先实例化一些ioc关心的bean,比如各种processor,还有一些特定类型的bean,具体可以细看下代码。然后会把实例化后的一些在ioc容器里有特定功能的bean进行注册

[源码和文档分享]基于Python和SQL SERVER数据库实现的实验信息综合管理系统

断了今生、忘了曾经 提交于 2020-02-29 16:38:26
1 需求分析 1.1 需求来源 本系统是对于实验综合信息进行管理的系统。 1.1.1 功能需求 学生用户: 修改系统登陆密码、查询选择的课程、查询选择课程对应的实验课表、导出查询到的课程数据、实验课表数据 教师用户: 修改系统登陆密码、修改个人联系方式、查询教授的课程、查询实验安排、增加课程信息、增加实验信息、按学号查询出勤率、按班级查询出勤率、导出查询到的数据记录 管理员用户: 增加学生信息、修改学生信息、增加教师信息、修改教师信息、增加课程信息、修改课程信息,增加实验信息、修改实验信息,增加实验室信息、修改实验室信息,更新实验打卡信息 1.1.2 数据需求 系统涉及的数据表为8个表,管理员信息表(ADMINB)、教师表(JSB)、教师课程表(JSKCB)、课程表(KCB)、实验打卡表(SYDKB)、实验室表(SYSB)、实验信息表(SYXXB)、学生表(XSB)。 其中管理员信息表包含的基本属性为管理员用户名、登陆密码。教师表包含的几本书新为教师姓名、联系方式、登陆密码。教师课程表包含的基本属性为教师姓名、课程代码。课程表包含的基本属性为课程代码、课程名称、开课学院。实验打卡表包含的基本属性为实验编号、学生学号、打卡状态。实验室表包含的基本属性为实验中心、实验分室、上课地点。实验信息表包含的基本属性为实验编号、课程代码、实验项目、上课老师、辅助教师、上课日期、星期几、上课地点

Python——2020爬取猫眼电影Top100(一系列分析和小白版正则小技巧)

萝らか妹 提交于 2020-02-29 14:06:13
Python——2020爬取猫眼电影Top100(详解) 小白我在学习python的过程中看见买的书和csdn上的各位大佬都爬取过猫眼电影Top100当作练习,基本都是用正则表达式进行的爬取,那么我也用正则表达式进行爬取,并说一下正则表达式在编写的时候的一些小技巧,当然更方便的爬取也可以用xpath和pyquery中的类似于css选择器的语法进行爬取更为简单。 首先用谷歌浏览器打开目标网页,F12查看各类响应进行分析,主要看请求头和响应头的内容。(上图!) 我看的是名为4的请求响应,该就是包括了网页源码的请求响应,进行分析后可以看看其响应的展示(Preview)和返回内容(Response)。从中可以或多很多信息: 在General中: 我们可以得到网页的请求URL链接,请求方式get,返回响应码(200),以及远程服务器的地址和端口,在这它增加了Reffer Policy:Referrer判别策略,那么我们就简单介绍一些这个策略,这也是我在大佬博客中看到的。。 ''' no referrer when downgrade的意思:降级时不推荐。 从一个网站链接到另外一个网站会产生新的http请求,referrer是http请求中表示来源的字段。 no-referrer-when-downgrade表示从https协议降为http协议时不发送referrer给跳转网站的服务器。

Android开发 API人脸检测实例教程(内含源码)

微笑、不失礼 提交于 2020-02-29 11:54:22
Android中文API最新中文版 http://www.eoeandroid.com/thread-58597-1-1.html =============帖子正文======================= 通过两个主要的API,Android提供了一个直接在位图上进行脸部检测的方法,这两个API分别是 android.media.FaceDetector和android.media.FaceDetector.Face,已经包含在Android官方API中。本教程来自 Developer网站 ,向大家介绍了这些API,同时提供教程中实例 代码下载 。 所谓人脸检测就是指从一副图片或者一帧视频中标定出所有人脸的位置和尺寸。人脸检测是人脸识别系统中的一个重要环节,也可以独立应用于视频监控。在数字媒体日益普及的今天,利用人脸检测技术还可以帮助我们从海量图片数据中快速筛选出包含人脸的图片。 在目前的数码相机中,人脸检测可以用来完成自动对焦,即“脸部对焦”。“脸部对焦”是在自动曝光和自动对焦发明后,二十年来最重要的一次摄影技术革新。家用数码相机,占绝大多数的照片是以人为拍摄主体的,这就要求相机的自动曝光和对焦以人物为基准。 构建一个人脸检测的Android Activity 你可以构建一个通用的Android Activity,我们扩展了基类ImageView

vs2017编译Lua最新源码,生成动态链接库版本

落爺英雄遲暮 提交于 2020-02-29 09:42:57
一、去官网下载lua5.3.5源码包 https://www.lua.org/download.html 点击download可以看到历时版本: https://www.lua.org/ftp/ 这里可以看到需要的版本,点击下载。 二、建立VS工程 点击确定 这里根据需要选择x64,还是x86。下面以Release版本为例(Debug版本的编译过程也基本相同的) 三、解压lua源码包 将下载的lua源码包解压出来,我这里解压到了E盘根目录,以此路径为例: E:\lua-5.3.5\src 这个路径就是我们全部的lua源文件了。 四、编译过程 1.生成lua动态链接库(dll) 添加lua的src文件中除lua.c和luac.c两个文件外的文件全部添加 设置: 在“C/C++” -> “预处理器” -> “预处理器定义” 中添加LUA_BUILD_AS_DLL 设置完后,就可以编译。 生成lua5.3.5.lib和lua5.3.5.dll 新建一个build目录,将生成的这两个文件进去,如图所示: 2.生成luac.exe编译器 直接在解决方案上右键->添加->新建项目,项目名为luac5.3.5 将lua源码包中src目录中的除lua.c外的所有文件添加进去: 检查一下设置: 添加lua5.3.5.lib的设置: 首先是添加路径: 添加lua5.3.5.lib 将luac5.3

SpringMVC文件上传源码分析前言

蹲街弑〆低调 提交于 2020-02-29 09:18:58
该如何研究SpringMVC的文件上传的源码呢? 研究源码并不是仅仅知道程序是怎样运行的,而应该从宏观的角度、不同的立场去看待问题。以SpringMVC文件上传的源码为例(麻雀虽小,五脏俱全),我们应该从下面几个方面去分析和研究: #1 文件上传的基本规则:以什么样的格式来传输数据? get or post ? 与其他字段如何共存 ? 多文件上传? #2 站在apache fileupload的角度 apache fileupload目的是想写一个通用的解析文件上传的jar包,可以供所有的java web框架来方便使用 它对外应该提供哪些API来方便外界使用?它又需要外界的哪些参数? 哪些内容应该是它做的? 哪些内容不应该由它来做? #3 站在SpringMVC框架的角度 它不再重复造轮子,使用其他一些jar包即可 定义自己的方便用户使用的接口,如 MultipartFile、MultipartResolver,来屏蔽掉底层所使用的jar包 需要将底层jar包和自己的接口结合起来 ##所以不仅仅要理解程序,还需要理解整体的架构与思路,理清每一个角色的职责范围。如当需要限制上传的文件大小时,这一部分是谁的职责呢? ##如果我们都以上述方式要求自己,则源码分析才更有价值和意义,不然我们永远就只能处在类与类跳转的迷雾中 来源: oschina 链接: https://my.oschina