php
飞蓬058
PHP、Java、C菜鸟
展开
-
SESSION跨页传递问题
首先,我们要了解,在什么状态下SESSION中的会话变量不能跨页传递。情况有三:①客户端禁用了COOKIE;②在php.ini中设置了session.use_trans_sid=0或者在编译前没有开启--enable-trans-sid选项;③浏览器出现故障,暂时无法读写COOKIE文件。造成SESSION变量无法跨页进行传递,其原因在于SESSION储存于服务器端(默认以文件方式存储内容),原创 2016-01-17 19:45:21 · 2274 阅读 · 0 评论 -
Swoole2.0协程客户端连接池的实现
Swoole2.0官方默认的实例是短连接的,在请求处理完毕后就会切断redis或mysql的连接。实际项目可以使用连接池实现复用。实现原理也很简单,使用SplQueue,在请求到来时判断资源队列中是否有可用的连接,如果有直接拿来复用。如果没有就创建一个新的连接。在连接使用完毕后再讲它重新放回到队列,此连接就可以被其他协程复用。$count = 0;$pool = new SplQueue转载 2017-01-04 10:59:11 · 3914 阅读 · 2 评论 -
PHP 行为测试工具 Codeception 介绍
Codeception 简介#近年来 PHP 出现了三个很不错的 Test Framework , 分别是Phpspec 用过 Rails 的 rspec 的朋友应该会习惯这种写测试的方法;Behat 可读性最高的测试, 非程序员使用;Codeception 全堆栈的 PHP 测试框架, 提供测试的方法多样, 灵活.这帖子我们来先介绍 Codeception.C转载 2017-01-12 15:08:04 · 2449 阅读 · 0 评论 -
swoole-环境搭建及扩展安装
Git地址:https://github.com/LinkedDestiny/swoole-doc第一章 环境搭建及扩展安装环境说明: 系统:Ubuntu14.04 (安装教程包括CentOS6.5) PHP版本:PHP-5.5.10 swoole版本:1.7.6-stablePHP安装要用swoole,首先需要有PHP环境。由于swoole的某转载 2017-01-16 14:37:27 · 1686 阅读 · 0 评论 -
基于swoole扩展实现真正的PHP数据库连接池
PHP的数据库连接池一直以来都是一个难题,很多从PHP语言转向Java的项目,大多数原因都是因为Java有更好的连接池实现。PHP的MySQL扩展提供了长连接的API,但在PHP机器数量较多,规模较大的情况下,mysql_pconnect非但不能节约MySQL资源,反而会加剧数据库的负荷。假设有100台PHP的应用服务器,每个机器需要启动100个apache或fpm工作进程,那每个进程都会转载 2017-01-17 14:40:17 · 734 阅读 · 0 评论 -
php的websocket
原文网址:http://www.jnecw.com/p/1523要理解socket就要先理解http和tcp的区别,简单说就是一个是短链,一个是长链,一个是去服务器拉数据,一个是服务器可以主动推数据。而socket就是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后转载 2017-07-17 20:24:41 · 311 阅读 · 0 评论 -
使用Phalcon+PHP-FPM构建PHP基于多进程的数据库连接池
原文链接: https://github.com/fupengfei058/article-collection/blob/master/%E4%BD%BF%E7%94%A8Phalcon+PHP-FPM%E6%9E%84%E5%BB%BAPHP%E5%9F%BA%E4%BA%8E%E5%A4%9A%E8%BF%9B%E7%A8%8B%E7%9A%84%E6%95%B0%E6%8D%AE%E5%B转载 2017-12-01 23:46:14 · 2375 阅读 · 0 评论 -
php结合redis实现高并发下的抢购、秒杀功能
原文链接: https://github.com/fupengfei058/article-collection/blob/master/php%E7%BB%93%E5%90%88redis%E5%AE%9E%E7%8E%B0%E9%AB%98%E5%B9%B6%E5%8F%91%E4%B8%8B%E7%9A%84%E6%8A%A2%E8%B4%AD%E3%80%81%E7%A7%92%E6%9D转载 2017-12-02 00:00:50 · 570 阅读 · 0 评论 -
PHP7中新的Hashtable实现和性能改进
原文链接: https://github.com/fupengfei058/article-collection/blob/master/PHP7%E4%B8%AD%E6%96%B0%E7%9A%84Hashtable%E5%AE%9E%E7%8E%B0%E5%92%8C%E6%80%A7%E8%83%BD%E6%94%B9%E8%BF%9B.md 这篇文章是翻译自nikic的最新大作,我从他转载 2017-12-02 00:02:01 · 559 阅读 · 0 评论 -
深入理解Zend执行引擎
原文链接: https://github.com/fupengfei058/article-collection/blob/master/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3Zend%E6%89%A7%E8%A1%8C%E5%BC%95%E6%93%8E.mdPHP:一种解释型语言PHP经常会被定义为“脚本语言”或者是“解释型语言”,什么是“解释型语言”呢?所谓转载 2017-12-02 00:03:08 · 5161 阅读 · 2 评论 -
从数据结构角度分析foreach效率比for循环高的原因
原文链接: https://github.com/fupengfei058/article-collection/blob/master/%E4%BB%8E%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E8%A7%92%E5%BA%A6%E5%88%86%E6%9E%90foreach%E6%95%88%E7%8E%87%E6%AF%94for%E5%BE%AA%E7%转载 2017-12-02 00:03:52 · 365 阅读 · 0 评论 -
shell脚本——lanmp安装
lanmp安装脚本原创 2016-07-04 16:05:09 · 450 阅读 · 0 评论 -
关于PHP程序员解决问题的能力
这个话题老生长谈了,在面试中必然考核的能力中,我个人认为解决问题能力是排第一位的,比学习能力优先级更高。解决问题的能力既能看出程序员的思维能力,应变能力,探索能力等,又可以看出他的经验。如果解决问题能力不佳是无法通过面试的。这里举个例子,假如我执行了一个PHP的脚本,如php test.php,预期是可以返回一个字符串。但执行后没有任何信息输出,这时候通过什么方法能知道程序错在哪里?这里可转载 2017-01-03 10:52:24 · 296 阅读 · 0 评论 -
在phpStrom中安装php代码格式化插件Php-cs-fixer
由于phpStrom原来的插件不再开源,现在转为使用Php-cs-fixer格式化代码。以下为在phpStrom中安装Php-cs-fixer的具体步骤。安装安装很简单,下载php-cs-fixer.phar文件就行了。官方地址是:http://get.sensiolabs.org/php-cs-fixer.phar github地址:https://github.转载 2017-01-03 10:40:12 · 6221 阅读 · 0 评论 -
Windows下搭建php开发环境
Apache : 首先修改Apache的配置文件,让Apache支持解析PHP文件。Apache配置文件在Apache安装目录的conf目录下的httpd.conf。1. 让Apache可以解析php文件,在配置文件中找到 #LoadModule vhost_alias_module modules/mod_vhost_alias.so在下一行添加 LoadModule php5转载 2016-01-17 20:18:46 · 559 阅读 · 0 评论 -
Snoopy类库实现模拟登陆
在爬虫的过程中,很多时候需要登录后才能浏览一些网页。Snoopy类库可以方便地实现向服务器发送cookie,从而模拟登录状态。以下代码是模拟登录新浪微博,不过出于安全考虑,我的cookie字串没有展示出来~require_once ('Snoopy.class.php');$snoopy = new Snoopy();$cookieStr = " ";$snoopy->host原创 2016-01-24 17:08:39 · 478 阅读 · 0 评论 -
php实现折半查找
<?php//递归方式function bin_recur_search($arr,$val){ global $time; if(count($arr) >= 1){ $mid = intval((count($arr) - 1) / 2); $time++; if($arr[$mid] == $val){原创 2016-08-23 23:51:01 · 1356 阅读 · 0 评论 -
php实现字符串匹配算法——sunday算法
<?php/* *@param $pattern 模式串 *@param $text 待匹配串 */function mySunday($pattern = '',$text = ''){ if(!$pattern || !$text) return false; $pattern_len = mb_strlen($pattern); $text_len = mb_原创 2016-08-14 14:10:11 · 1032 阅读 · 0 评论 -
php实现冒泡排序
<?php//冒泡排序function bubble_sort($arr){ $len = count($arr); for($i = 0;$i < $len;$i ++){ for($j = 0;$j < $len - $i - 1;$j ++){ if($arr[$j] > $arr[$j+1]){ //交换顺序原创 2016-08-24 11:34:11 · 225 阅读 · 0 评论 -
php实现选择排序
//选择排序function select_sort($arr){ $len = count($arr); for($i = 0;$i < $len - 1;$i++){ //假设最小值为$i $min_val = $arr[$i]; //最小值的下标 $min_index = $i; for($j =原创 2016-08-24 17:34:57 · 258 阅读 · 0 评论 -
php实现直接插入排序
//插入排序function insert_sort($arr){ $len = count($arr); for($i = 1;$i < $len;$i++){ for($j = $i - 1;$j >= 0;$j--){ //插入的元素较小,交换位置 if($arr[$i] < $arr[$j]){原创 2016-08-24 21:03:27 · 267 阅读 · 0 评论 -
php实现快速排序
//快速排序function quick_sort($arr){ $len = count($arr); if($len <= 1) return $arr; $base_num = $arr[0]; $left_arr = array(); $right_arr = array(); for($i = 1;$i < $len;$i++){原创 2016-08-24 21:18:47 · 204 阅读 · 0 评论 -
PHPCrawl爬虫库抓取酷狗歌单
爬虫抓取酷狗最近一月精选歌曲。由于抓取的数据量较小,所以没有考虑多进程什么的,不过我看了一下PHPCrawl的文档,发现PHPCrawl库已经把我能想到的功能都封装好了,实现起来很方便<?phpheader("Content-type:text/html;charset=utf-8");// It may take a whils to crawl a site ...set_time_li...原创 2016-01-24 16:05:20 · 2443 阅读 · 0 评论 -
php实现栈操作
<?phpclass MyStack{ private $top = -1;//默认-1,表示该栈为空 private $maxSize = 5;//表示栈的最大容量 private $stack = array(); //入栈操作 public function push($val){ //判断栈是否已满 if($this->原创 2016-08-14 14:30:25 · 280 阅读 · 0 评论 -
Composer -- PHP依赖管理的新时代
对于现代语言而言,包管理器基本上是标配。Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm。PHP 的则是 PEAR,不过 PEAR 坑不少:依赖处理容易出问题配置非常复杂难用的命令行接口好在我们有 Composer,PHP依赖管理的利器。它是开源的,使用起来也很简单,提交自己的包也很容易。安装 ComposerCom转载 2016-12-03 22:46:17 · 214 阅读 · 0 评论 -
linux下安装php7+mysql5.7+nginx
环境:CentOS7.1 X64MySQL5.7.10PHP7.0.0Tengine/2.1.1 (nginx/1.6.2)参考:http://blog.haohtml.com/archives/15340一。安装常用扩展库123sudoyum -y installgcc gcc-c转载 2016-12-03 22:49:01 · 489 阅读 · 0 评论 -
swoole2.0协程原理分析
原文链接:https://github.com/fupengfei058/blog/blob/master/swoole2.0%E5%8D%8F%E7%A8%8B%E5%8E%9F%E7%90%86%E5%88%86%E6%9E%90.md 协程的定义关于协程,你可能看的最多的就是这样一句话“协程就是用户态的线程”。要理解是什么是“用户态的线程”,必然就要先理解什么是“内...转载 2018-03-30 21:38:23 · 803 阅读 · 0 评论