- php黑魔法 08-28
- 如何在Ubuntu中切换多个PHP版本 08-28
- 来看看“悲催”的程序猿需要学习多少东西吧 08-28
- ngnix——FastCGI 相关参数调优 08-27
- Shell脚本100例:7 监控服务端口 08-27
- 360烤面筋 08-27
- spring cloud微服务-初探(对比传统应用, 08-27
- 阿里的面试官都喜欢问哪些技术问题? 08-27
- 阿里P8架构师谈:NoSQL和SQL的区别,NoSQ 08-27
- Python编程入门——基础语法详解 08-27
php黑魔法
发布者: PHPYuan | 发布时间:2018-08-28前言
php的很多特性再带来编程方面的同时也会带来很多安全隐患,其中一些漏洞在CTF中经常出现,本文大部分示例也是取自CTF题目。这里首先说一下==和===区别。==是比较运算,它不会去检查条件式的表达式的类型,===是恒等,它会检查查表达式的值与类型是否相等,NULL,0,”0″,array()使用==和false比较时,都是会返回true的,而使用===却不会。
注:本文部分内容及代码并非原创,而是从网上搜集而得。
一
数组
0x01 数组的hash计算
很多时候,PHP数组都发挥了至关重要的作用,比如下面代码
如何在Ubuntu中切换多个PHP版本
发布者: PHPYuan | 发布时间:2018-08-28有时,最新版本的安装包可能无法按预期工作。你的程序可能与更新的软件包不兼容,并且仅支持特定的旧版软件包。在这种情况下,你可以立即将有问题的软件包降级到其早期的工作版本。请参阅我们的旧指南,在这了解如何降级 Ubuntu 及其衍生版中的软件包以及在这了解如何降级 Arch Linux 及其衍生版中的软件包。但是,你无需降级某些软件包。我们可以同时使用多个版本。例如,假设你在测试部署在 Ubuntu 18.04 LTS 中的LAMP 栈的 PHP 程序。过了一段时间,你发现应用程序在 PHP 5.6 中工作正常,但在 PHP 7.2 中不正常(Ubuntu 18.04 LTS 默认安装 PHP 7.x)。你打算重新安装 PHP 或整个 LAMP 栈吗?但是没有必要。你甚至不必将 PHP 降级到其早期版本。在这个简短的教程中,我将向你展示如何在 Ubuntu 18.04 LTS 中切换多个 PHP 版本。它没你想的那么难。请继续阅读。
来看看“悲催”的程序猿需要学习多少东西吧
发布者: PHPYuan | 发布时间:2018-08-28首先你得会一门编程语言, 比如 C, Java, Python, PHP等, 但是光语言本身还差得远, 还得学习这门语言得类库,学完类库还得学框架, Spring, struts, hibernate ,mybatis 每一个都不是善茬。
做前端的同学也不用说了, html / javascript / css, 再加上一大堆前端框架Angular, React, Vue, 总得学会一样吧。
学完了框架才能做项目,找工作, 才有可能开始光荣的增删该查之旅。
但是这还远远不够, 前面说的这些知识只能算是入门。
数据结构和算法必须得学, 要不然你写的代码永远没有隔壁的张大胖写的好,同样的需求,人家的代码赏心悦目, 你的凌乱不堪, 被领导批得体无完肤。
所以《算法》,《大话数据结构》,《图解数据结构》,《算法导论》...... 统统都来吧, 数组、栈、队列、二叉树、图、排序、搜索 保证不把你淹没。
平时和大家聊天,一定得能说出几种
ngnix——FastCGI 相关参数调优
发布者: PHPYuan | 发布时间:2018-08-27当 LNMP 组合工作时,首先是用户通过浏览器输入域名请求 Nginx Web 服务,如果请求的是静态资源,则由 Nginx 解析返回给用户;如果是动态请求(如 PHP),那么 Nginx 就会把它通过 FastCGI 接口发送给 PHP 引擎服务(即 php-fpm)进行解析,如果这个动态请求要读取数据库数据,那么 PHP 就会继续向后请求 MySQL 数据库,以读取需要的数据,并最终通过 Nginx 服务把获取的数据返回给用户,这就是 LNMP 环境的基本请求流程。 FastCGI 介绍:CGI 通用网关接口,是 HTTP 服务器与其他机器上的程序服务通信交流的一种工具,CGI 接口的性能较差,每次 HTTP 服务器遇到动态程序时都需要重新启动解析器来执行解析,之后结果才会被返回 HTTP 服务器,因此就有了 FastCGI ,FastCGI 是一个在 HTTP 服务器和动态脚本语言间通信的接口,主要是把动态语言和 HTTP 服务器分离开来,使得 HTTP 服务器专一地处理静态请求,提高整体性能,在 Linux 下,FastCGI 接口即为 socket ,这个 socket 可以是文件 socket 也可以是 IP socket
worker_processes 1;
events {
worker_connections 1024
Shell脚本100例:7 监控服务端口
发布者: PHPYuan | 发布时间:2018-08-27之前在一台Linux系统上部署了Ntop服务,由于服务的配置比较差,主要是内存比较小,Ntop的服务端口有时候就会挂掉,原因是从交换机镜像的流量全部加载到redis中,redis把内存耗尽导致服务异常。关于Ntop的部署可以看下之前的文章如何简单部署Ntop来监控数据流量
所以就写了一个小脚本,来判断端口是否异常,然后重启服务,脚本比较简单。
脚本信息:
#!/bin/bash
NTOP_PORT=`netstat -lpnt | grep 3000 | awk '{print $4}' | awk -F ":" '{print $NF}'`
360烤面筋
发布者: PHPYuan | 发布时间:2018-08-27【每日一语】生存在我们每个人体内的,一到时候,它就会抖掉身上的尘土,慢慢地萌芽开来。——《穿条纹睡衣的男孩》
楼主是昨天北京现场面的360,从早上10点多到下午5点多才回来,真的累额TT
今天把面试内容整理一下,我面的是儿童业务部,希望对大家有所帮助吧^^
正文开始↓↓↓
一面(一个可爱的小哥哥^^)
1、TCP和UDP区别
2、应用层的哪些协议是由TCP支持的
3、HTTP和HTTPs区别
4、网页输入网址后发生了什么
5、DNS基于TCP还是UDP
6、客户端主动断开连接,中间的状态变化
7、进程和线程的区别
8、线程的状态转换
9、数据库索引
10、几千万数据的表扩充新的字段如何处理
11、几千万数据的表如何分页
12、海量数据如何排序
13、Redis
spring cloud微服务-初探(对比传统应用,优势图解)
发布者: PHPYuan | 发布时间:2018-08-27首先,介绍为何要用到微服务。
一、传统应用1.1 项目维护
项目各个模块,都在一个项目中。如果仅需要修改某一个文件里的代码,我们修改完后,和以前代码对比,再测试这部分代码,确认没问题提交。或者直接编译为class,塞到war包里,再进行部署。
理想状态不会有问题,可以通常不太理想,人为出错比拟非常高,因此每次上线都是惊涛骇浪。生怕一不小心发生不可预期的错误。
1.2 性能瓶颈
传统单一垂直应用架构
阿里的面试官都喜欢问哪些技术问题?
发布者: PHPYuan | 发布时间:2018-08-27金九银十是招聘的旺季,小编在这里也给大家整理了一套阿里面试官最喜欢问的问题或者出场率较高的面试题,助校招或者社招路上的你一臂之力!
首先我们需要明白一个事实,招聘的一个很关键的因素是在给自己找未来的同事,同级别下要找比自己优秀的人,面试是一个双向选择的过程,也是一个将心比心去沟通的过程。
就像我们有的人感觉自己很牛逼,但是拿不到offer,而其他的人菜的一笔,却可以拿到offer,我们称之为玄学offer,遇到这种情况大家也不要感觉到有什么不可描述的心情,一切随缘即可!
和以前一样,只有问题没有参考答案,需要各位小伙伴下来逐一学习!
一、开场白
简单的介绍一下自己的工作经历与职责,在校或者工作中主要的工作内容,主要负责的内容;(你的信息一清二白的写在简历上,这个主要为了缓解面试者的压力)
介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;(主要考察应聘者对自己做过的事情是否有清晰的描述,判断做的事情的复杂度)
二、Java多线程相关
线程池的原理,为什么要创建线程池?创建线程池的方式;
线程的生命周期,什么时候会出现僵死进程;
说说线程安全问题,什么实现线程安全,如何实现线程安全;
创建线程池有哪几个核心参数? 如何
阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较
发布者: PHPYuan | 发布时间:2018-08-27NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称,它具有非关系型、分布式、不提供ACID的数据库设计模式等特征。
NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
SQL 和 NoSQL 的区别Python编程入门——基础语法详解
发布者: PHPYuan | 发布时间:2018-08-271.内置的变量类型:
Python是有变量类型的,而且会强制检查变量类型。内置的变量类型有如下几种:
#浮点
float_number = 2.3
#复数
complex_number = 1 + 5j
#整型
integer_number = 1
#list 序列
sample_list = [2,52,36,'abc']
#嵌套
sample_nest = [(2,4,6),{5:7,9:11,'key':[2,5]},6]
#dictionary 字典
sample_dic = {"key":value, 5:10}
#tuple 只读的序列
sample_tuple = (3,9,"ab")
从上面的示例可以看出,python
