php
xing2233
xing8901@foxmail.com
展开
-
php扩展开发-变量设置和销毁
原创 2018-05-08 21:42:26 · 223 阅读 · 0 评论 -
php扩展开发---将类赋值给zval变量-object_init_ex
php version:5.6.22 mac<?php$http = new xing_http_server();$http->on("start",function($server){ echo "http server is started at http://127.0.0.1:9501\n"; echo $server . PHP_EOL ;});$http->o原创 2017-11-09 09:49:10 · 848 阅读 · 0 评论 -
php扩展开发---获取参数-zend_parse_parameters
转自:http://www.cunmou.com/phpbook/7.2.md 最简单的获取函数调用者传递过来的参数便是使用zend_parse_parameters()函数。 zend_parse_parameters()函数的前几个参数我们直接用内核里宏来生成便可以了,形式为:ZEND_NUM_ARGS() TSRMLS_CC,注意两者之间有个空格,但是没有逗号。从名字可以看出,ZEND_NU转载 2017-11-08 18:11:38 · 1768 阅读 · 1 评论 -
php扩展开发---回调php方法-call_user_function
call_user_function原创 2017-11-08 18:01:48 · 1822 阅读 · 0 评论 -
php扩展开发---使用PHP Embed SAPI实现Opcodes查看器
转载:http://www.laruence.com/2008/09/23/539.html php version:5.6.22 mac#include <stdio.h>#include "../php/php-5.6.22/sapi/embed/php_embed.h"#ifdef ZTS void ***tsrm_ls;#endif//#define BUFFER_LEN原创 2017-11-08 17:58:29 · 1009 阅读 · 0 评论 -
php扩展开发---通过嵌入包装实现cli功能
CMakeLists.txt:cmake_minimum_required(VERSION 3.6)project(c)set(CMAKE_CXX_STANDARD 11)#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gcc")set(SOURCE_FILES main.c)include_directories(原创 2017-11-08 17:55:02 · 414 阅读 · 0 评论 -
php扩展开发---mac上编译php的embed
php原文件目录: /usr/php5.6/ 执行: ./configure –prefix=/Users/albert/Documents/php/phptest/ –enable-debug –enable-maintainer-zts –enable-embed ‘–with-config-file-path=/Users/albert/Documents/php/phptest/et原创 2017-11-08 17:51:37 · 657 阅读 · 0 评论 -
php扩展开发---使用CLion开发PHP扩展
转载:http://type.so/default/develop-php-extension-with-clion.html 扩展目录: ./ext_skel –extname=xing2233 php原文件目录: /usr/php5.6/ php编译后的目录: /usr/php/ 1.使用clion导入xing2233:file->import project 2.修改cmake转载 2017-11-08 17:44:06 · 1816 阅读 · 0 评论 -
php---第一个扩展开发
php扩展开发下载php源码 http://php.net/downloads.php 1.编译phpcd /home/php5.6.22./configure --prefix=/usr/local/phptest/ --enable-debug --enable-maintainer-zts '--enable-fpm' '--with-config-file-path=/usr/local/phptes原创 2017-11-08 17:37:36 · 859 阅读 · 0 评论 -
php---utf-8文件下生成csv文件
写入csv//写入csv $url_csv = WSING_ROOT . '/countall.csv'; if (file_exists($url_csv)) { unlink($url_csv); } $fp = fopen($url_csv, 'ab'); $export_array = a原创 2015-11-12 14:28:23 · 1203 阅读 · 0 评论 -
php扩展开发---获取cpu核数-sysconf(_SC_NPROCESSORS_CONF)
php_printf("%ld", sysconf(_SC_NPROCESSORS_CONF));原创 2017-11-09 09:51:46 · 4588 阅读 · 0 评论 -
php扩展开发---设置常量
转自:http://www.cunmou.com/phpbook/12.3.md 在脚本中使用扩展的一个方便之处是,人们可以改变自己定义的常量。你可以通过define()函数来定义一个常量。在内核中,我们将会使用REGISTER_*_CONSTANT()的 家族函数来使用常量。 对于你定义的大多数常量来说,你可能希望在程序初始化的时候便定义这些变量。你可能需要在MINIT函数:PHP_MINIT转载 2017-11-09 09:54:43 · 387 阅读 · 0 评论 -
php扩展开发---zval 字符串赋值给char
直接赋值是没有用的char val[Z_STRLEN_PP(zVal)] = Z_STRVAL_PP(zVal);要这样char val[Z_STRLEN_PP(zVal)];snprintf(val, Z_STRLEN_PP(zVal) + 1, Z_STRVAL_PP(zVal));原创 2017-11-09 09:58:17 · 543 阅读 · 0 评论 -
ffmpeg任意格式转码为M4A
$ffmpeg = 'bin/ffmpeg-2.8-64bit-static/ffmpeg';$neroAacEnc = 'bin/NeroAACCodec-1.5.1/linux/neroAacEnc';$input = "a.mp3";$rate = 320000;$output = "{$input}.m4a";$command = "{$ffmpeg} -vn -loglevel原创 2018-03-19 18:37:11 · 3488 阅读 · 0 评论 -
php扩展开发-错误处理
//输出php错误//NULL TSRMLS_CC 默认写法//E_NOTICE 错误级别//错误内容php_error_docref(NULL TSRMLS_CC, E_NOTICE, "test");//Notice: confirm_xing2233_compiled(): test in /Users/albert/Documents/php/php-5.6.22/ext/xin原创 2018-01-24 18:20:38 · 400 阅读 · 0 评论 -
php扩展开发-数组操作
//add_assoc_*系列函数,生成字符索引:add_assoc_null(zval *aval, char *key);add_assoc_bool(zval *aval, char *key, zend_bool bval);add_assoc_long(zval *aval, char *key, long lval);add_assoc_double(zval *aval, c原创 2018-01-24 18:16:37 · 1754 阅读 · 0 评论 -
php---读取大文件最后几行
$fp = fopen("./epoll.c", "r");$lines = 3;$i = 1;while (1) { fseek($fp, -$i, SEEK_END); $tmp = fgetc($fp); if (!$lines) break; if ($tmp == "\n") { echo fgets($fp); -原创 2017-12-08 10:10:46 · 1148 阅读 · 0 评论 -
php---long2ip()与ip2long()
ip2long()将字符串ip转成int var_dump(ip2long(“115.115.115.115”));int 1936946035long2ip将int转成字符串ip var_dump(long2ip(1936946035));string '115.115.115.115' (length=15)作用:以ip做索引,int查询比char快原创 2017-12-05 11:05:58 · 717 阅读 · 0 评论 -
nginx与php-fpm通信的两种方式
转载:http://blog.csdn.net/koastal/article/details/52303316 简述在linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tc转载 2017-12-11 11:41:05 · 3303 阅读 · 0 评论 -
php面试题
有一个IP地址(192.168.0.1),请写出其32位无符号整数形式将ip 转成2进制 192%2 = 0 96%2 = 0 48%2 = 0 24%2 = 0 12%2 = 0 6%2 = 0 3%2 = 1 1%2 = 1 192 的二进制 :11000000请写出HTTP头Accept: text/html 可以接受的数据类型 Accept-Encoding: gzip原创 2017-12-06 18:49:43 · 1511 阅读 · 0 评论 -
php扩展开发---kqueue 实例
/* +----------------------------------------------------------------------+ | PHP Version 5 | +---------------------------------------------原创 2017-11-09 10:02:07 · 434 阅读 · 0 评论 -
php扩展开发---区分系统加载epoll或者kqueue
cd /ext/xing2233vim config.m4增加AC_CHECK_LIB(c, poll, AC_DEFINE(HAVE_POLL, 1, [have poll]))AC_CHECK_LIB(c, kqueue, AC_DEFINE(HAVE_KQUEUE, 1, [have kqueue]))phpize./configurevim /ext/xing2233/config原创 2017-11-09 09:59:10 · 414 阅读 · 0 评论 -
php---curl
post$data = "username={$usr}&password={$pwd}&requestTime={$request_time}&authSign={$auth_sign}";$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, 1);curl_setop原创 2015-05-25 11:57:35 · 358 阅读 · 0 评论 -
php---数字格式化
长数字格式化为短数字21212.12121212保留2位小数需要4舍5入用 round不需要用 number_format短数字格式化为长数字1212保留2位小数用sprinf('%.2f', 1212)变成1212.00原创 2014-12-18 10:44:43 · 529 阅读 · 0 评论 -
php---算法
冒泡排序function maosort($arguments){ $length = count($arguments); for($i = 0; $i<$length; ++$i) { $flag = false; for($j = $length -1; $j > $i; --$j) { if ($arguments[$原创 2015-06-19 10:59:01 · 420 阅读 · 0 评论 -
php---从txt文件读取数据
$url = ROOT . '/data' . dirname($bookinfo['book_filepath']) . '/' . $book_id . '/' . ($cid - 1) . '.txt';$handle = fopen($url, 'rb');$txt_content = '';$preg = '/^\s| /'; #去除中文全角空格while (! feof(原创 2014-12-23 15:56:02 · 3078 阅读 · 0 评论 -
php---判断字符编码
$code = mb_detect_encoding($tmp,array('ASCII','GB2312','GBK','UTF-8'));原创 2015-01-07 17:03:40 · 886 阅读 · 0 评论 -
php---常用正则
字符串中是否有中文$bool = preg_match('/^.*[\x4e00-\x9fa5]+.*$/', $str);原创 2015-01-07 16:18:23 · 303 阅读 · 0 评论 -
PHP 中命名空间的作用
php中命名空间 其实就是为了避免类名冲突main.class.php[html] view plaincopynamespace App\main; class aa { public static function test() { echo 1; } }原创 2014-10-20 17:29:52 · 1280 阅读 · 0 评论 -
php---引入文件的函数之间的效率对比
FunctionTime (s)Memory (b)32Kb File1Mb File32Kb File1Mb Filefile_get_contents0.001520.00564524801067856fpassthru0.001170.001842001620032fgets0转载 2014-09-17 11:27:44 · 414 阅读 · 0 评论 -
异常处理---__toString()
用法:直接输出class 的shili<?php/*** */class ke{ static $a ; public function test() { self :: $a=2; } public function test1() { echo self :: $a; } public function __toString(){ return原创 2014-09-26 14:43:03 · 426 阅读 · 0 评论 -
php---对象和数组互转
$a = array( 'one'=>1, 'two'=>2);$b = json_encode($a);$c = json_decode($b);var_dump($c);$d = json_encode($c);var_dump($d);$e = json_decode($d,TRUE);var_dump($e);原创 2014-09-24 09:45:30 · 358 阅读 · 0 评论 -
php---预定义常量DIRECTORY_SEPARATOR
转载于:http://blog.csdn.net/abandonship/article/details/6524402转载 2014-09-23 09:50:50 · 441 阅读 · 0 评论 -
php---预定义常量PHP_EOL
换行符unix系列用 \nwindows系列用 \r\nmac用 \rPHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性原创 2014-09-23 13:39:11 · 496 阅读 · 0 评论 -
php-fpm---为每个开发人员分配进程
一、php-fpm 配置cd /etc/php-fpm.d/mv www.conf www.conf_baktouch hx.conf配置如下[hx]user = hxgroup = hxlisten = 127.0.0.1:9002pm = staticpm.max_children = 5php_value[session.save_handler] = fil原创 2015-01-15 15:57:31 · 605 阅读 · 0 评论 -
php-fpm---配置文件
配置文件官方详解:http://php.net/manual/zh/install.fpm.configuration.php原创 2015-01-06 09:22:48 · 414 阅读 · 0 评论 -
php---get_included_files — 返回被 include 和 require 文件名的 array
返回所有被 include、 include_once、 require和 require_once的文件名。原创 2015-02-13 13:46:10 · 548 阅读 · 0 评论 -
php --- 代码在window 和linux 等操作系统间的兼容问题
url 中的斜杠用 DIRECTORY_SEPARATO 代替回车换行用 PHP_EOL 代替大小写敏感原创 2015-05-20 17:18:17 · 525 阅读 · 0 评论 -
php--- 验证表单,防止csrf
加验证码或者 使用token 或者2者都用详细查看https://github.com/xing2233/cms/blob/master/application/cmsadmin/controllers/login.php原创 2015-05-20 16:47:26 · 464 阅读 · 0 评论 -
php---datatime使用
$date = new DateTime('now', new DateTimeZone('GMT'));echo $date->format('D, d M Y H:i:s') . ' GMT'; #生成格林威治时间echo $date->getTimestamp(); #获取当前时间戳原创 2015-04-24 10:42:02 · 382 阅读 · 0 评论