
php
Leon0204
这个作者很懒,什么都没留下…
展开
-
LeetCode .146. LRU缓存机制-详解
problem运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删...原创 2019-02-25 13:13:21 · 657 阅读 · 0 评论 -
在mac下安装Yaf全记录
重要的写在开头,请达到一下条件再开始操作,免得做无用功如果你的mac自带php版本小于5.5请安装新版本php 比如5.6配置好你的 apache 或者 nginx ,确保网络服务正常这里通过 brew安装 php-5.6brew install —with-http24 --with-fpm --with-mysql php56brew 安装软件一般在 /usr/local/Cellar原创 2017-06-08 13:21:48 · 4213 阅读 · 0 评论 -
Sphinx 实现海量数据的快速查询
说到 Sphinx,就会想到:站内搜索,mysql优化,分词 等等有关搜索海量数据的需求,本文介绍了 sphinx的基本概念、安装、和一个联系动态语言实现大数据海量查询的实例。1. Sphinx的基本概念Sphinx 是一个 全文检索引擎。意图为其他应用提供 高速、低空间占用、高结果相关度 的全文搜索功能。Sphinx 可以非常容易的与 SQL 数据库和脚本语言集成。当前系统内置 MySQL 和 P原创 2017-05-22 10:37:32 · 98849 阅读 · 2 评论 -
redis 和Mysql 的一些 区别
说 Redis 的缓存机制实现之前,我想先回顾一下 mysqlmysql 存储在哪儿呢?以 windows 为例,mysql 的表和数据,存储在data 目录下frm ibd 后缀的文件中 mysql存储在机器/服务器的 硬盘中所以 mysql 读写数据都需要从磁盘读取 。磁盘的容量,带宽的大小就影响了网站的访问速度,读取的方式,也就是 sql 语句,次数和效率也会影...原创 2017-05-24 20:13:05 · 23485 阅读 · 3 评论 -
电商秒杀场景的解决策略与具体实现方案
问题场景:某电商网站,po了一个活动宣传活动,3月8号,1元秒杀iphone7 ,限量10台,看你手速哦,快来抢吧。广大吃瓜群众:程序员: 程序员说 受不了 怎么办? 短时间的大访问量 网站服务器 同网站,不同项目部署,/独立域名 避免对网站造成影响 高并发问题,不停刷新 数据库 页面静态化 带宽 200k的页面 并发1w次 ,带宽为2G 带宽 秒杀原创 2017-05-24 20:46:01 · 9045 阅读 · 1 评论 -
如何让代码没有bug?(当然是佛祖保佑)
github 地址:https://github.com/leon0204/bugFreePhp原创 2017-03-23 11:38:27 · 1208 阅读 · 0 评论 -
PHP 去除一维,二维数组重复value的键
二维数组去除重复value的键private function array_unique_fb($origin){ foreach ($origin as $key => $v){ $v = json_encode($v); $temp[$key] = $v; } $temp = array_unique($temp); foreach ($temp as $k => $v原创 2017-04-10 17:57:19 · 1856 阅读 · 0 评论 -
PHP Warning: proc_open(): fork failed - Cannot allocate memory in phar:///usr/bin/composer/vendor/s
使用 Laravel , composer 时出现以上错误 ,解决办法:/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024/sbin/mkswap /var/swap.1/sbin/swapon /var/swap.1与 php 版本, 其他的都没关系。测试环境,ubuntu14.04 ,centos6、7,大部分 Vps .原创 2017-03-24 10:24:49 · 1088 阅读 · 0 评论 -
Ip转换为数字,正则匹配ip
存储空间比较:varchar 类型 存储 0.0.0.0 -255.255.255.255 是7-15个字节int 类型 存储 是4个字节 1个字节8位 2^31-1 IPv4 实质就是 32位的二进制串 可以用int 存储 ipv4地址(10进制的4段)转换为32位的2进制。 1. 先转换为2进制,然后连在一起 2. 左移 3*8 2*8 1*8 0 位 转换: 转原创 2017-11-06 14:36:08 · 779 阅读 · 0 评论 -
Php Rabbitmq 环境搭建(附一个例子)
首先安装 erl 环境,其次安装 rabbitmq-server ,最后安装 amqp 扩展,安装完成之后使用 rabbitmqctl status 查看状态 。文末附上一个 生产消费消息 的 例子。用到的命令如下:#安装erlang环境$ apt-get install erlang#安装 rabbitmq-server$ wget http://www.rabbitmq.com/releas原创 2017-12-11 18:49:24 · 1551 阅读 · 0 评论 -
Php-fpm的配置和优化
Nginx本身不能处理 php请求,它是一个web服务器,接收到php请求后,发给php解释器处理,并把结果返回给客户端 nginx 一般是把请求发给fastcgi 管理进程处理,fascgi管理进程选择cgi 子进程处理结果,并返回给nginx php-fpm.conf 配置文件[www]pm.max_children = 15 #最大子进程数 pm.start_servers = 2 #启动时原创 2017-12-14 13:06:48 · 654 阅读 · 0 评论 -
PHP容易犯错的一些坑
1 引用的问题<?php$arr = range(1,3);foreach ($arr as &$v){}print_r($arr);foreach ($arr as $v){ print_r($arr);}2 检测变量是否设置 <?php$data = array();//$data['name'] = 0;//$d...原创 2018-03-29 14:33:05 · 377 阅读 · 0 评论 -
Leon的 php 源码阅读笔记 二
原文链接:https://www.leon0204.com/article/123.html 首先第一章写完,觉得真的很枯燥 ,可能这样读者读起来也很无趣。所以从这一章开始,我尽量在一些概念上加上一些 实际操作的例子 来帮助理解。回顾一一下上一篇主要是 SAPI ,介绍了 PHP执行脚本编译之前,进行模块的初始化,激活模块来初始化脚本执行的基础环境,和结束之后的注销模块。那么 S...原创 2018-04-03 12:13:51 · 323 阅读 · 0 评论 -
Leon的 php源码阅读笔记 一
原文:https://www.leon0204.com/article/120.html写这个阅读笔记系列的初衷,是帮助自己消化啃完源码。所谓:好记性不如烂笔头,自己写一遍与干读真的会有不一样的收获。千里之行,始于足下。 先开始写,最后再来整理第一章:一个完整的SAPI生命周期特性、历史概念、跳过SAPI (Server Application Programming In...原创 2018-03-30 17:52:54 · 1937 阅读 · 0 评论 -
php几种常用算法
写一下几种常见排序算法,清一下脑子归并排序/** * Created by PhpStorm. * User: leon * Date: 2018/3/14 * Time: 下午2:37 */function mergeSort(&$arr) { $len = count($arr);//求得数组长度 mSort($arr, 0, $len-1);...转载 2018-03-14 16:26:35 · 4324 阅读 · 0 评论 -
深入理解 Session 和 Cookie
Q:如何精确的让Session 的有效期为30分钟呢?pre :cookie 和 session 的作用初衷都是为了记住用户在网站上的浏览信息,由于http 是无状态的,为了维持用户在网站的状态1 来看看 php 是如何设置 session 的有效期的#超过这个秒数,储存的数据会被当作垃圾,并且被垃圾回收进程清除#http://php.net/session.gc-maxli...原创 2018-03-06 16:28:20 · 352 阅读 · 0 评论 -
一些 PHP 类相关的函数
1. instanceof / is_a()类型运算符 ,用于确定一个 变量是否属于一个 class 的实例 1. 如果被判断的变量是类的实例 2. 如果被判断的变量是被实例的classs所extends的class 3. 如果被判断的变量是被实例的classs所implements的class 4. 如果变量是与被实例的class一样的,变量的str 与被实例类一致,变量s...原创 2018-03-12 14:52:43 · 709 阅读 · 0 评论 -
一起来看看 PHP 中的反射
什么是反射?动态获取 类的方法、属性、参数,注释 等 信息以及动态调用对象的方法的功能称为反射API。 反射是操纵面向对象范型中元模型的API,其功能十分强大,可帮助我们构建复杂,可扩展的应用。比如 Laravel 的容器反射类/函数的功能可以获取类的一切信息,包括: 1. 类基本信息(类名、是否是抽象类、是否可实例化、类是否为final或者abstract) 2. ...原创 2018-03-12 14:04:33 · 1669 阅读 · 0 评论 -
二进制安全
1. php的二进制安全 binary-safephp的内部函数在操作二进制数据时能保证达到预期的结果,例如 str_replace、stristr、strcmp 等函数,我们就说这些函数是二进制安全的。下面通过 c 语言 和 php 的对比 来看 他们对二进制数据的处理#include "stdio.h"#include "string.h"int main(){cha...原创 2018-03-02 13:59:55 · 1136 阅读 · 0 评论 -
用PHP判断是否是手机端
用PHP判断是否是手机端上代码:/** * 检测是否是手机端 * @return boolean */function is_mobile(){ $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : ''; $mobile_browser = '0'; if(preg_m原创 2017-03-07 11:57:13 · 731 阅读 · 0 评论 -
get_file_content 和curl的比较,谁更好?
最近在写公司的抓取百度快照的时候,用到了这两个函数 。一开始用的是网上搜的获取快照的代码,看了下思路就写了get_file_content。把逻辑写完,开始用php artisan console 开始跑,跑到几十条数据,就开始停住,不过还好时不时的还会动一下,深感欣慰,虽然数据库里面几万条数据,算了下8个小时就能跑完了,就把命令放旁边跑了,继续干别的事情。结果跑到3820条时候,报了个错误。...原创 2016-11-25 17:57:14 · 4537 阅读 · 0 评论 -
性状 Trait 的简单使用与理解
trait 实质就是在其他类中 复制了 trait中定义的变量和方法。创建trait :<?phpnamespace App\Tra; Trait logTrait { public function slog() { echo '2'; } public function原创 2016-11-29 14:38:29 · 1100 阅读 · 0 评论 -
laravel5.3 绑定服务容器例子
假设有一个TestServicer 服务类,声明 一个callme方法。我们想在其他类里面很方便的使用,而不是new。首先创建TestServiceProvider 服务提供者,在这里进行注册TestServicer 服务,在register中注册,两种方法注册//使用singleton绑定单例 服务容器绑定 $this->app->singleton('tes转载 2016-11-29 14:30:36 · 4354 阅读 · 0 评论 -
Laravel5.3中的原生+查询构造器+Eloquent ORM 常用整理
一。 db门面方法use Illuminate\Support\Facades\DB;查:$users = DB::select('select * from users where active = ?', [1]);更新:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']原创 2016-11-10 10:56:33 · 9767 阅读 · 0 评论 -
服务器微信支付接口笔记-(与app端对接)
最近几天在做app的微信支付和支付宝支付,主要负责服务器接口。记录一下服务器这边的工作。参考微信的官方文档链接:(有用的几个)1 - 首先,如果想让app可以使用微信支付,必须先申请一个开放平台的账号微信开放平台地址:微信开放平台地址 (我知道你们懒得百度)同时,在开放平台页面顶部,有一个 资源中心,里面有各种文档(登录,授权等api在这个文原创 2016-07-20 14:40:42 · 9451 阅读 · 2 评论 -
PHP stripslashes() 函数
用法 :<?phpecho stripslashes("Who\'s Bill Gates?");?>结果 :Who's Bill Gates?定义和用法stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。提示:该函数可用于清理从数据库中或者从 HTML 表单中取回的数据。原创 2016-11-08 10:20:51 · 2660 阅读 · 0 评论 -
PHP error_reporting() 错误控制函数
1函数功能 error_reporting() 设置 PHP 的报错级别并返回当前级别2函数语法:error_reporting(report_level)如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:值 常量 描述1 E_ERROR 致命的运行错误。错误转载 2016-11-08 10:06:43 · 523 阅读 · 0 评论 -
三方登录的一些心得
互联,三方登录小记原创 2016-07-06 15:19:14 · 645 阅读 · 0 评论 -
创建自己的 laravel Artisan Console
在shell中使用php artisan 可以查看所有的命令配置自己创建的artisan console 流程如下:”1 使用artisan 创建命令文件php artisan make:command TestCreate生成的文件会在 app\command 路径下,需要修改下面两个地方 /** * The name and si原创 2016-11-25 17:05:06 · 5160 阅读 · 0 评论 -
百度push 结构化数据记录
1 http://kgopen.baidu.com/doc/access/manual 百度知识图谱开放平台地址 可以看到相关数据格式要求2 采用laravel artisan command形式推送,记录回调错误日志artisan 使用可以参考我的另外一篇博客。创建自己的 laravel Artisan Consolehttp://blog.原创 2016-12-27 11:05:40 · 818 阅读 · 0 评论 -
laravel php artisan console 二. 附加参数与案例
<?php/** * 抓取快照生成工具 */namespace App\Modules\XXXX\Commands;use Illuminate\Console\Command;use Illuminate\Support\Facades\DB;class RunSnapshotCommand extends Command{ /** * The name原创 2016-11-28 16:35:31 · 5906 阅读 · 0 评论 -
Laravel下使用 xhprof php版本5.6
1先下载安装包 cd /usr/local/srcgit clone https://github.com/phacility/xhprof.gitcd xhprof/extension2编译安装phpize ./configure --with-php-config=/usr/bin/php-config原创 2017-03-06 14:40:45 · 1853 阅读 · 0 评论 -
PHP-STROM ---Live Templates设置技巧
一个很实用的phpstrom 快捷输入技巧。举个例子:比如你在写data['descrition'] data['name'] data['piclogo'] 的时候每次写,很烦,你可以这样这些都是cms的字段,你想达到 输入cmskey tab补全 显示几种cms ,选中之后补全,显示这个cms里的字段。步骤如下:1 在php原创 2017-02-14 16:55:05 · 3139 阅读 · 0 评论 -
configure: error: Cannot find php-config. Please use --with-php-config=PATH 错误的解决方案
configure: error: Cannot find PHP-config. Please use --with-php-config=PATH一般出现这个错误说明你执行 ./configure 时 --with-php-config 这个参数配置路径错误导致的。修改为:./configure --with-php-config=/usr/local/php/bin/php转载 2017-01-21 11:38:36 · 39896 阅读 · 2 评论 -
在Laravel中配置使用多个Datebase的连接,DB
在 config\datebase.php中默认有一个db的连接配置'mysql' => array( 'driver' => 'mysql', 'host' => 'host1', 'database' => 'database1', 'username' => 'user原创 2017-01-12 10:16:17 · 4154 阅读 · 0 评论 -
Laravel5 +phpmailer
public function index() {// echo phpinfo();die(); $mail = new \PHPMailer(true); // notice the \ you have to use root namespace here try { $mail->isSMTP(); //原创 2017-01-12 10:10:00 · 1836 阅读 · 0 评论 -
PHP抓取百度搜索结果对应的第一个百度快照的链接
利用正则,代码如下:public function kuaizhaoo() { $text = '你要搜索的内容'; $url = 'http://www.baidu.com/s?word='.$text; $html = file_get_contents($url); // var_dump($html); $text = str_repl原创 2016-11-24 11:31:32 · 2895 阅读 · 0 评论 -
centos7 下 安装php 7的记录
1 先查看自己的centos版本 cat /etc/centos-release2 卸载之前安装的php版本 ,可能需要执行多次 yum remove php* php-common 3 安装对应的php7源rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 4 安装原创 2016-12-16 12:07:20 · 1000 阅读 · 0 评论 -
特殊字符<200b><200c><200d>的删除办法与原理
今天遇到一个很神奇的bug一段描述字段,很长一段,中间有如下的字符这个是在vim 下看到的但是在php中打印和使用cat看到的情况如下:这就很神奇了,所以肉眼看不见尝试解决办法:str_replace 发现没用。解决办法:$value = str_replace("\xe2\x原创 2017-01-06 12:00:44 · 20122 阅读 · 1 评论 -
微信分享等api笔记
微信分享首先需要的条件首先,公众号需要是认证过的,服务号。开发前需要在微信公众号,填写安全域名。当然,你需要知道你的appid和appsecret。——————————————1 根据自己的业务逻辑,定义一个微信jssdk类,获得分享需要用到的数据—————————————————————/**** @author 坏人小明** @jssdk原创 2016-07-12 09:34:46 · 979 阅读 · 0 评论