RJ博客

PHP exec函数调用执行 Linux Shell命令及错误码解析

PHP  exec函数调用执行 Linux Shell命令及错误码解析
接触到一些在前端调用Liunx执行Shell命令的功能,这里只介绍下PHP的exec函数。原型: string exec( string $command [, array &$output [, int &$return_var]]) 功能: exec()执行command参数所指定的命令。 参数: command:要执行的命令 output:如果提供了output参数,那么会用命令执行的输出流(stdout)填充此数组,每行输出填充数组中的一个元素。数组中的数据不包含行尾的空白字符,例如\n字符。请注
2018年01月18日 524 views 1评论

python动态页面爬虫 - selenium+PhantomJS

python动态页面爬虫 - selenium+PhantomJS
PhantomJS,这是一个基于webkit的没有界面的浏览器,也就是它可以像浏览器解析网页,功能非常强大。但是据我测试,解析的结果不一定和火狐或者chrome完全一样,但是完全够我们用。 简单介绍一下selenium,这是一个web的自动测试工具,可以模拟人的操作。支持市面上几乎所有的主流浏览器,同时也支持PhantomJS这种无界面浏览器。
2018年01月16日 506 views 1评论

python 输出缓存

python 输出缓存
Linux Shell运行Python脚本,Python脚本while循环里print的内容无法实时写入磁盘log文件,这个其实就是和缓冲有关。 缓冲的目的:是为了减少系统的io调用。只有当符合一定条件(比如缓冲数量)时才调用io。当缓冲区大于0时(等于0时无缓冲,所有的读写操作都直接针对硬盘),Python会将文件内容存放到缓冲区(内存中),从而使程序运行更快,这时,只有使用flush或者 close才会将缓冲区中的数据更新到硬盘中。
2018年01月15日 363 views 1评论

Python:利用pytesser识别简单图形验证码

Python:利用pytesser识别简单图形验证码
Windows按照这篇博客操作基本没问题了,需要注意的是: pytesser是基于tesseract实现的(其实就是通过subprocess模块让tesseract易于调用),所以需要将tesseract.exe所在的路径配置到系统环境变量。如果不配置,则需要把pytesser.py文件的tesseract_exe_name变量的值改为tesseract.exe所在的路径, 否则会报错。
2017年09月12日 810 views 1评论

PHP中的计算评估顺序

PHP中的计算评估顺序
其实优先级和关联性只能告诉你表达式是如何分组的。正常情况下PHP将评估left-to-right,访问简单的变量将在更复杂的表达式之后执行,而不管表达式实际发生的顺序如何。在复杂表达式之后提取简单变量的原因是编译变量(CV)优化。如果禁用此优化,例如通过使用@错误抑制算子,所有表达式都将被评估为left-to-right,包括简单变量提取。
2017年08月25日 590 views 1评论

Python多线程 - 刷简书阅读数

Python多线程 - 刷简书阅读数
今天发现简书在未登录状态下,访问一次阅读数+1,基于这个逻辑想到了再Linux下用curl访问链接增加阅读数,发现curl访问并没有使阅读数增加,基本确定简书是用ajax请求接口使阅读数+1的,经过排查发现是 mark_viewed.json 这个接口,下面以《QQ麻将番数规则》这篇文章为例讲解下,阅读数上报接口: http://www.jianshu.com/notes/1a7358890b15/mark_viewed.json ​
2017年07月19日 8641 views 6评论

PHP fsockopen伪多线程实现异步发送邮件及问题解决

PHP fsockopen伪多线程实现异步发送邮件及问题解决
比如,一个很切实的应用,每当博客有新评论的时候,我希望系统能及时提醒我去处理。那么评论者在点提交按钮到看到成功提示之间可能会等待很常时间,基本是在等邮件发送的过程。而实际上是不管邮件发送成功与否对评论者来说不是特别重要的信息,这个过程可异步来执行。
2017年07月18日 629 views 1评论

MySQL行列转置方法

MySQL行列转置方法
MySQL行列转置方法。1.利用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total。2.利用SUM(IF()) 生成列 + UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total。3.利用SUM(IF()) 生成列,直接生成结果不再利用子查询。4.动态,适用于列不确定情况。
2017年07月17日 689 views 1评论

centos6.5 编译安装 protobuf 和 PHP扩展安装

centos6.5 编译安装 protobuf 和 PHP扩展安装
( 1 )一般出现这个错误说明你执行 ./configure 时 --with-php-config 这个参数配置路径错误导致的。 查找:$ find / -name php-config 修改为: $ ./configure --with-php-config=/usr/local/php/bin/php-config 上面的 /usr/local/php/ 是你的 php 安装路径 如果还解决不了: ( 2 ) 运行 $ yum install php-devel ( 3 ) 运行 $ phpize
2017年07月11日 875 views 1评论

Thrift框架安装

Thrift框架安装
解决步骤: 1、使用find命令查找缺失的xxxx共享库文件所在位置。参考:#find 目录 -name "xxxx*" 2、将找到的目录位置写入 /etc/ld.so.conf 配置文件,这个文件记录了编译时使用的动态链接库的路径。 3、然后使用ldconfig命令,使配置生效。
2017年07月11日 465 views 1评论