魏长东

weichangdong

正在查看: php 分类下的文章(第 7 页 / 共 94 篇)

protobuf实例-PHP

protobuf简介
protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持php、java、c++、python等语言环境。通过将这些类包含在项目中,可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。

protobuf在google中是一个比较核心的基础库,作为分布式运算涉及到大量的不同业务消息的传递,如何高效简洁的表示、操作这些业务消息在google这样的大规模应用中是至关重要的。而protobuf这样的库正好是在效率、数据大小、易用性之间取得了很好的平衡。

»»阅读全文

http_build_query的相对函数

大家都知道php的http_build_query函数能把一个数组,变成一个url字符串,但是要想把一个url字符串变成一个数组呢?

比如需要吧这个字符串给变成key对应value的形式。

$get='act=ad.jump&androidid=a433bf43c56fbbe5&devid=7796bfce-639c-3664-8044-
da5fafd20d3c&version=1.8&klsso=qS4QHBw2zcaRVLH-5kOVBQ-qw8KYxsYU1ZoAYviEM0&k
lperson=n4e4Egh33WgqsHqKRJEsn.tq694_id4v3sqf_Akt3tDT_vdN11sfkyJfxSZLdSZ44Sf6h9
V2sQT9pgQ&userid=1256513&adid=1091&src=http://track.12trackway.com/aff_c?offer
_id=14952&aff_id=1873&aff_sub={clickid}&clickid=1091_7796bfce-639c-3664-8044-
da5fafd20d3c&ts=1425376774&sign=2f8cd4aa2956';
$new = explode('&',$get);
//print_R($new);
foreach ($new as $v) {
    $tmp = explode('=',$v);
    $$tmp[0] = $tmp[1];
    $ok[$tmp[0]] = $tmp[1];
}
print_r($ok);
extract($ok);
//echo $act;
//还原回去
//echo http_build_query($ok);

输出结果

Array (
[act] => ad.jump
[androidid] => a433bf43c56fbbe5 
[devid] => 7796bfce-639c-3664-8044-da5fafd20d3c
[version] => 1.8 
[klsso] => qS4QHBw2zcaRVLH-5kOVBQ-qw8KYxsYU1ZoAYviEM0 
[klperson] => n4e4Egh33WgqsHqKRJEsn.tq694_id4v3sqf_Akt3tDT_vdN11sfkyJfxSZLdSZ44Sf6h9V2sQT9pgQ
[userid] => 1256513
[adid] => 1091 
[src] => http://track.12trackway.com/aff_c?offer_id 
[aff_id] => 1873
[aff_sub] => {clickid}
[clickid] => 1091_7796bfce-639c-3664-8044-da5fafd20d3c 
[ts] => 1425376774
[sign] => 2f8cd4aa2956
) 

PHP SAPI之CLI

从版本 4.3.0 开始,PHP 提供了一种新类型的 SAPI(Server Application Programming Interface,服务端应用编程端口)支持,名为 CLI,意为 Command Line Interface,即命令行接口。顾名思义,该 SAPI模块主要用作 PHP 的开发外壳应用。CLI SAPI 和其它 SAPI 模块相比有很多的不同之处,我们将在本章中详细阐述。值得一提的是,CLI 和 CGI 是不同的 SAPI,尽管它们之间有很多共同的行为。

»»阅读全文

Tags: php的cli

本站给图片加水印

折腾了半天,本来想用外面的类文件实现图片加水印的功能,最后发现SAE自带的有,就用这个实现了。

$f = new SaeFetchurl();
$img_data = $f->fetch( '*test14.jpg' );
$img = new SaeImage();
$img->setData( $img_data );
$wcd = $img->getImageAttr($img_data);
$width = $wcd['width'];
$height = $wcd['height'];
$img->annotate('swordman.sinaapp.com',0.5,SAE_Static, array("name"=>SAE_SimSun, "size"=>floor($width/10), "weight"=>300, "color"=>"red"));
//string $txt, float $opacity = 0.5, constant $gravity = SAE_Static, array $font = array("name"=>SAE_SimSun, "size"=>15, "weight"=>300, "color"=>"black") 
$new_data = $img->exec(); // 执行处理并返回处理后的二进制数据
// 或者可以直接输出
$img->exec( 'jpg' , true );
//图片处理失败时输出错误码和错误信息
if ($new_data === false)
        var_dump($img->errno(), $img->errmsg());
?>

»»阅读全文

php使用redis学习

PhpRedis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:

Redis::__construct构造函数

1    $redis = new Redis();
connect, open 链接redis服务

»»阅读全文

Tags: redis

配置多个php-fpm

现在的项目,出现了cpu占用很少很少,不到0.1,但是php-fpm进程不够用。(是因为给别的公司提供的url发奖,需要等他们返回成功,但是一到高峰期,就返回特慢,平时大概这么久0.018244981765747,高峰这么久30.032204866409),就把我的php-fpm给拖住了,以至于影响别的功能。然后就想多开几个php-fpm,网上各种找资料,基本没有。因为大家貌似最多开的也就50个。最后我们技术老大,给配置了100*10个。之前游戏遇到的都是mysql把服务器拖垮了,这次是php把服务器拖慢了。

»»阅读全文

PHP abstract 和 interface的区别

1.php 接口类:interface

其实他们的作用很简单,当有很多人一起开发一个项目时,可能都会去调用别人写的一些类,那你就会问,我怎么知道他的某个功能的实现方法是怎么命名的呢,这个时候php接口类就起到作用了,当我们定义了一个接口类时,它里面的方式是下面的子类必须实现的,比如 :

»»阅读全文

PHP对象在内存中的分配

对像在PHP 里面和整型、浮点型一样,也是一种数据类,都是存储不同类型数据用的, 在运行的时候都要加载到内存中去用,那么对象在内存里面是怎么体现的呢?内存从逻辑上 说大体上是分为4 段,栈空间段、堆空间段、代码段、初始化静态段,程序里面不同的声明 放在不同的内存段里面,数据段(data segment)通常是指用来存放程序中已初始化且不为0的全局变量如:静态变量和常量;代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域,比如函数和方法;栈空间段是存储占用相同空间长度并且占用空间小的数据类型的地方,比如说整型1,10,100,1000,10000,100000 等等,在内存里面占用空间是等长的,都是64 位4 个字节。那么数据长度不定长,而且占有空间很大的数据类型的数据放在那内存 的那个段里面呢?这样的数据是放在堆内存里面的。如下图:

»»阅读全文

获取php类下有哪些方法,以及方法参数

有时候,php只知道某个类,但是类里面有啥方法却不得而知,常见的是别人写的php扩展,你通过php -m或者phpinfo可以看到类名,但是不知道下面有哪些可用的方法。进一步知道了方法名,但是不知道方法怎么用,需要传什么参数。下面的代码,完美的解决了这些顾虑。

»»阅读全文

PHP类文件冲突解决办法(命名空间的使用)

在百度知道上,看到这样一个问题:

PHP的2个数据库类和作图类冲突,求解决办法?
1、require_once("build_graph.php");作图像类
2、require_once("pgsql.php");数据库类
3、require_once("mssql.php");数据库类
单有1、2、3都不报错
共有2、3也不报错
共有1、2或1、3或1、2、3都报错

»»阅读全文