php
文章平均质量分 57
moliyiran
这个作者很懒,什么都没留下…
展开
-
从几个简单的程序看PHP的垃圾回收机制
每一种计算机语言都有自己的自动垃圾回收机制,让程序员不必过分关心程序内存分配,php也不例外,但是在面向对象编程(OOP)编程中,有些对象需要显式的销毁,防止程序执行内存溢出。一、PHP 垃圾回收机制(Garbage Collector 简称GC)在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁;这是PHP的GC垃圾处理机制,防止内存溢出。当一个PHP线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC进程一般都跟着每起一个SESSIO转载 2020-07-26 22:20:14 · 952 阅读 · 0 评论 -
php+go实现grpc
1.先安装编译器:https://github.com/google/protobuf/releases把bin下的exe放到环境PATH目录。做成环境变量.2.获取go支持库的插件: // gRPC运行时接口编解码支持库 go get -u github.com/golang/protobuf/proto // 从 Proto文件(gRPC接口描述文件) 生成 go文件 的编译器插件 go get -u github.com/golang/protobuf/protoc-gen-g原创 2020-07-05 14:14:18 · 2024 阅读 · 1 评论 -
lavarel服务提供者
先看一篇好的介绍:前言刚开始看 laravel 服务容器、契约、服务提供器的确生涩难懂,不单单是概念繁多,而且实际的 demo 很难找(找是找到了,但难用啊),最后就隔一段时间看一遍,大概个十来遍,还真给看出个门道,废话少说上代码。准备阶段首先声明一下我的测试环境php 7.2.4laravel 5.61. 创建新项目(composer)在你的项目目录命令行运行:comp...转载 2020-03-10 20:54:57 · 880 阅读 · 0 评论 -
php+mysql存储html文件
$fileContent = trim($fileContent); $fileContent=$queueList->characet($fileContent); $fileContent = addslashes(htmlspecialchars($fileContent,ENT_QU...原创 2020-02-26 13:55:19 · 1438 阅读 · 0 评论 -
php-rdkafka手动提交偏移量
在项目中使用php-rdkafka的高级消费者时,发现设置了:$topicConf->set('enable.auto.commit', 'false');没有效果,还是会自动提交offset,查了各种资料,正确的应该是这样设置:$conf->set('enable.auto.commit', 'false');相关说明见文档:https://github.com/ed...转载 2020-02-24 14:28:53 · 2154 阅读 · 0 评论 -
windows环境下给PHP增加rdkafka扩展
因为工作需要kafka作为消息中间件,所以在本地开发环境进行测试的时候需要给PHP添加rdkafka扩展,使用PHP作为producer或者cosumer,在此纪录一下rdkafka的安装过程。扩展下载地址:http://pecl.php.net/package/rdkafka根据自身PHP版本选择相应的包,使用phpinfo()函数可以很方便的查看自己PHP版本:我的是7.1.5...转载 2020-02-24 13:37:09 · 1507 阅读 · 0 评论 -
docker下nginx+php7.2
运行命令如下:docker run -itd -p 9000:9000 -v D:/wwwroot/test/:/var/wwwroot/fym/ php:7.2-fpm /bin/bash再看我nginx配置: location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi...原创 2020-02-04 17:45:17 · 402 阅读 · 0 评论 -
PHP里的多线程(pthreads)详解
译者注:前阵子打算用到PHP的多线程, 但搜了一下, 才发现PHP多线程的资料少之又少。尽管PHP官方文档里有讲到多线程,但是讲太少了,连多线程在PHP中是怎么运行的也没有说。所以说要真正能够使用多线程的功能, 还有很多的概念需要理清楚,也有很多的资料需要整理。看过这篇文章你就知道, PHP的多线程跟其它语言的多线程使用方法是有比较大的区别的,所以其它语言的那一套也并不完全适用。上Github找到...转载 2019-12-07 16:30:21 · 863 阅读 · 0 评论 -
php使用pthreads v3多线程的抓取新浪新闻信息
我们使用pthreads,来写一个多线程的抓取页面小程序,把结果存到数据库里。数据表结构如下: 1 2 3 4 5 6 7 CREATE TABLE `tb_sina` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT'ID', ...转载 2019-12-07 16:25:29 · 427 阅读 · 0 评论 -
PHP 高级编程之多线程
1. 多线程环境安装1.1. PHP 5.5.9安装PHP 5.5.9https://github.com/oscm/shell/blob/master/php/5.5.9.sh./configure --prefix=/srv/php-5.5.9 \--with-config-file-path=/srv/php-5.5.9/etc \--with-config-file-sc...转载 2019-12-07 16:22:29 · 333 阅读 · 0 评论 -
PHP调用mysql显示Server sent charset (255) unknown
$ vim my.cnf下面是内容[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server = utf8_unicode_cicharacter-set-server = utf8转载 2019-12-07 14:57:05 · 3663 阅读 · 0 评论 -
worker和thread抓取
<?phpclass SQLQuery extends Stackable { public $data; public function __construct($url) { $this->url = $url; } public function run() { ...原创 2019-12-07 14:53:33 · 384 阅读 · 0 评论 -
thread进行多线程抓取
<?php class Myquery extends \Thread{ public $url; public $arr=[]; public function httpPost($url, $params=[]) { $curl = curl_init (); // 启动一个CURL会话 ...原创 2019-12-07 14:11:55 · 390 阅读 · 0 评论 -
PHP pthreads 多线程操作
1、php采用安全线程模式进行编译 --enable-maintainer-zts必须加上configure_options=" '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www'...转载 2019-12-07 14:05:56 · 400 阅读 · 0 评论 -
pdo/mysql和redis断线重连的实现
//pdo/mysql和redis断线重连的实现 //TODO:DB初始化 $pdo = new \PDO($this->dbConfig['dsn'], $this->dbConfig["username"], $this->dbConfig["password"],array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EX...原创 2019-12-07 13:12:35 · 341 阅读 · 0 评论 -
PHP pthreads 多线程操作
1、php采用安全线程模式进行编译 --enable-maintainer-zts必须加上configure_options=" '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' ...转载 2019-12-06 23:12:15 · 346 阅读 · 0 评论 -
PHP 线程,进程和并发
进程进程是什么?进程是正在执行的程序;进程是正在计算机上执行的程序实例;进程是能分配给处理器并由处理器执行的实体。 进程一般会包括指令集和系统资源集,这里的指令集是指程序代码,这里的系统资源集是指I/O、CPU、内存等。 综合起来,我们也可以理解进程是具有一定独立功能的程序在关于某个数据集合上的一次运行活动, 进程是系统进行资源分配和调度的一个独立单位。在进程执行时,进程都可以被唯一的表示...转载 2019-12-06 19:21:20 · 95 阅读 · 0 评论 -
php7 使用mongodb的command命令进行增删改查
引用了大神的文章这个文档缺失了mongodb的增加我就在这里进行补充,先上代码 public function mongodb() { $conn = new \MongoDB\Driver\Manager('mongodb://localhost:27017'); $time=time(); $time1=$time+100;...转载 2019-12-05 21:51:35 · 493 阅读 · 0 评论 -
mongodb 事务操作
事务必须用在复制集上:获取session:session = db.getMongo().startSession()开启事务:session.startTransaction()获得collection:yun1 = session.getDatabase(“database”).yun1操作:yun1.insert({“ggggggg”:1})获得collection:yun2 =...转载 2019-12-05 18:05:51 · 808 阅读 · 0 评论 -
PHP uniqid 高并发生成不重复唯一ID
PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结合md5函数来生成唯一ID。uniqid —生成一个唯一ID说明stringuniqid([string$prefix= "" [,bool$more_entropy= ...转载 2019-11-24 14:29:43 · 341 阅读 · 1 评论 -
openssl/lib/libcrypto.1.0.0.dylib
You might have come across this error while dealing with the openssl module.Inorder to solve this issue follow the following stepsStep 1: Install openssl using brewbrew install opensslStep 2...转载 2019-11-23 16:00:39 · 2395 阅读 · 0 评论 -
Kafka之sync、async以及oneway
kafka有同步(sync)、异步(async)以及oneway这三种发送方式,某些概念上区分也可以分为同步和异步两种,同步和异步的发送方式通过“producer.type”参数指定,而oneway由“request.require.acks”参数指定。1. sync vs async在官方文档Producer Configs中有如下:Property Default Des...转载 2019-11-14 17:06:10 · 283 阅读 · 0 评论 -
Kafka的零拷贝技术
kafka中的消费者在读取服务端的数据时,需要将服务端的磁盘文件通过网络发送到消费者进程,网络发送需要经过几种网络节点。如下图所示:image.png传统的读取文件数据并发送到网络的步骤如下:(1)操作系统将数据从磁盘文件中读取到内核空间的页面缓存;(2)应用程序将数据从内核空间读入用户空间缓冲区;(3)应用程序将读到数据写回内核空间并放入socket缓冲区;(4)...转载 2019-11-13 15:44:16 · 138 阅读 · 0 评论 -
Kafka工作流程-高级消费者和低级消费者
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/Luomingkui1109/article/details/827846951. Kafka 高级消费者高阶消费者是一把双刃剑,一方面简化了编程,一方面也由于编程者参与的功能过少, 可控内容过少而造成很多问题。(1) 自...转载 2019-11-12 15:14:17 · 995 阅读 · 0 评论 -
PHP下kafka的实践
kafka简介Kafka是一种高吞吐量的分布式发布订阅消息系统kafka角色必知producer:生产者。consumer:消费者。topic: 消息以topic为类别记录,Kafka将消息种子(Feed)分类, 每一类的消息称之为一个主题(Topic)。broker:以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker;消费者可以订阅一个或多个主题...转载 2019-11-12 14:50:21 · 302 阅读 · 0 评论 -
5.接口参数过滤(phalapi框架总结)
在接口类文件里,可以设置某个接口方法的请求参数相关过滤条件,然后直接用$this调用请求参数,如下:<?phpnamespace App\Api\Home;use PhalApi\Api;/** * 杂项 */class SiteInfo extends Common { public function getRules() { return a...原创 2019-11-04 16:17:52 · 1456 阅读 · 0 评论 -
4.国际化(phalapi框架总结)
国际化是通过T函数实现的,通过英文串作映射键:$rs['msg'] = \PhalApi\T('user not exists');我们来看T:/** * 快速翻译 * @param string $msg 待翻译的内容 * @param array $params 动态参数 */function T($msg, $params = array()) { retu...原创 2019-11-04 14:13:06 · 112 阅读 · 0 评论 -
3.路由实现(phalapi框架总结)
先来看框架的入口函数:index.php<?php/** * 统一访问入口 */require_once dirname(__FILE__) . '/init.php';define('DS','/');//$pai = new \PhalApi\PhalApi();$pai = new \App\Common\MyPhalApi(); $pai->respons...原创 2019-11-01 16:24:00 · 1196 阅读 · 1 评论 -
2.自动加载(phalapi框架总结)
我们调用一个类方法时,一定要先把这个类所在的php文件include(require)进来,然后才能调用。我们先来看初始化文件init.php:<?php/** * 统一初始化 */// 定义项目路径defined('API_ROOT') || define('API_ROOT', dirname(__FILE__) . '/..');// 引入composerr...原创 2019-11-01 15:26:43 · 568 阅读 · 0 评论 -
1.请求和响应(phalapi框架总结)
框架获取和处理的代码如下(index.php)<?php/** * 统一访问入口 */require_once dirname(__FILE__) . '/init.php';define('DS','/');//$pai = new \PhalApi\PhalApi();$pai = new \App\Common\MyPhalApi(); $pai->resp...原创 2019-10-31 10:53:45 · 636 阅读 · 0 评论 -
规避tp5非致命的报错提示信息
thinkphp5语法明显比以前严谨多了,因为是从thinkphp3过来的,就必然会保留一些个人认为比较好的使用习惯,由于tp5的严谨语法,似乎并不是很好用了,不过问题不大,稍微做做调整还是可以的。比如提前未定义一个变量,就会报错,无法进行下一步。其实在我们看来这并算不上致命的错误,在tp5中如何规避它呢?处理方法很简单,在common.php中添加:转载 2017-03-22 10:35:21 · 9654 阅读 · 0 评论 -
dwz查找带回弹框无法分页
dialog的查找功能,navtab的查找功能很简单,但是dialog的查找功能真的费了我好几个晚上不停的测试和查找相关的资料,DWZ资料真的很少,给作者留言也石沉大海。一切都靠自己摸索。id="pagerForm" rel="pagerForm" method="post" action="###" onsubmit="return dwzSearch(this, 'dialog');"转载 2017-03-24 13:32:20 · 721 阅读 · 0 评论 -
DWZ】常见问题解决 对话框 查找带回 分页问题 选择分页大小无效问题
在群里看到好多人 对话框 分页都有问题点击下一页对话框无反应点击下一页后台页面有反应选择分页大小无效问题本人经过N次调试和文档终于发现问题所在,贴上代码 大家一看就知道了:div class="panelBar"> div class="pages"> span>每页显示span> select name="numPerPage"转载 2017-03-24 13:34:17 · 759 阅读 · 0 评论 -
iwebshop后台模块
iwebshop后台模块的添加需要以下几个步骤例如添加:”订单2“模块1.在/classes/menu.PHP中找到//菜单的配制数据 (添加方式如下)'订单2'=>array( '订单管理'=>array( '/test/test_order_list' =>'订单列表', ), ),转载 2017-04-20 17:17:25 · 942 阅读 · 0 评论 -
php move_uploaded_file
把本地项目放到服务器上,文件上传到临时文件夹了。但是每次移动的时候就报错。这种通常是三种原因:出现这种问题可能是因为:1、权限不够2、文件太大(默认只能上传2M以内的文件)3、文件路径不对把源文件夹和目标文件夹权限设为777还是不行。好像也不是文件大小超了。然后开启错误日志查看。报如下信息:Warning: move_uploaded_file(): ope转载 2017-05-03 12:35:42 · 772 阅读 · 0 评论 -
lnmp php exif扩展
root@Ansen zlib]# pwd //进入/root/lnmp1.2-full/src/php-5.4.41/ext/calendar 也就是lnmp安装目录下对应的php扩展配置目录[root@Ansen zlib]#/usr/local/php/bin/phpize[root@Ansen zlib]#./configure --with-php-config=/usr转载 2017-05-03 12:38:27 · 581 阅读 · 0 评论 -
PHP 配置文件中open_basedir选项作用
open_basedir: 将用户可操作的文件限制在某目录下如下是php.ini中的原文说明以及默认配置: ; open_basedir, if set, limits all file operations to the defined directory ; and below. This directive makes most sense if used in a per-di转载 2017-05-03 12:39:52 · 4176 阅读 · 1 评论 -
php.ini 关闭错误
某台服务器php.ini的设置:error_reporting = E_ALL & ~E_NOTICEdisplay_errors = Offlog_errors = Onerror_log = /www/logs/php_error.log按理说这样,错误信息是不会输出了,但是当PHP有错误时,会把报错提示显示在页面上。搜索了下,发现有人说当log_errors开转载 2017-05-03 21:12:30 · 430 阅读 · 0 评论 -
php curl抛出请求不等待
请求程序加:curl_setopt($ch, CURLOPT_TIMEOUT, 1);接收程序头部加ignore_user_abort();header('HTTP/1.1 200 OK');header('Content-Length:0');header('Connection:Close');flush();转载 2017-05-17 15:32:04 · 3745 阅读 · 0 评论 -
php5.5新特性之yield理解
yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实现 Iterator 接口的方式,性能开销和复杂性大大降低。yield生成器允许你 在 foreach 代码块中写代码来迭代一组数据而不需要在内存中创建一个数组。使用示例:/** * 计算平方数列 * @param $start * @param $stop * @转载 2017-06-01 22:27:54 · 5291 阅读 · 0 评论