Tag: php

  • Example of Sending SMS in PHP Using AWS SNS

    Example of Sending SMS in PHP Using AWS SNS

    $client = AWS::createClient('Sns');
    $sms = [
        'Message' => 'sms_content',
        'PhoneNumber' => 'sms_recipient',
        'MessageAttributes' => [
            'AWS.SNS.SMS.SenderID' => [
                'DataType' => 'String',
                'StringValue' => 'AD'
            ],
            'AWS.SNS.SMS.SMSType' => [
                'DataType' => 'String',
                'StringValue' => 'Transactional'
            ],
        ]
    ];
    $result = $client->publish($sms);
  • php json_encode utf-8中文问题

    utf-8字符json_encode为变成转成utf16编码,也就是介个样子:

    $ ./php/bin/php -r 'echo json_encode("中文");'
    "u4e2du6587"

    可读性降低,最新的php 5.4的json_encode支持了UTF-8编码,可以把中文不编码直接输出。
    那低版本怎么办呢?也有办法,封装成一个函数给大家分享一下:

    function my_json_encode($var) {
        return preg_replace("/\u([a-f0-9]{4})/e",
          "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($var));
    }
  • PHP中的拷贝

    对象用等号赋值,只是引用,是浅拷贝,除非使用clone关键字。
    而基本类型,int、float、string、array几种类型都是复制也是引用,不过有copy-on-write机制控制,感觉好像是直接复制,但是效率却高一些。基本类型如果想传引用,需要加一个&.
    下面代码可以说明: (more…)

  • PHP: empty(), is_null(), isset()真值表(区别)

    原来很迷茫,只是在用,也没有出过问题,有时间了,就找了下资料学习了下。记录一下。
    原文:http://www.blueshoes.org/en/developer/php_cheat_sheet/

  • 计算php运行时间(毫秒数)

    非常简单,记录一下:

    $t1 = microtime(true);
    //php script here
    $t2 = microtime(true);
    echo (($t2-$t1)*1000).'ms';
  • Linux中文件和目录的权限问题

    最近搞了几个VPS玩,VPS一般来说内存都不多,配置轻量级的Nginx+PHP,折腾当中权限问题搞了半天。
    大家都知道,Linux中文件和目录都有自己的权限,分为rwx三种,分别代表读、写、执行的权限。但是目录和文件又不一样,不能被写和执行,文件rwx三种权限与目录的对比如下:

    权限 文件 目录
    r 可以列表该目录中的文件
    w 可以在该目录中创建或者删除文件
    x 执行 可以搜索或者进入该目录

    现在很多的博客代码都提供在线安装插件或者升级等方便的功能,但是如果权限设置的不正确就无法使用,比如《WordPress“执行请求操作,连接信息必需提供”解决方法》中提到就是这样的问题。
    (more…)

  • 如何开启Gzip压缩

    Gzip压缩效率非常高,通常可以达到70%的压缩率,也就是说,如果你的网页有30K,压缩之后就变成了9K左右,好处有二:

    节省带宽这个对大多数人来说没什么,加快你网页的加载速度确是普适的。前面看到许多朋友都在介绍如何开启Gzip,但是个人感觉方法不甚全,听我给大家道来:
    方法大概有三:在Contol Pannel开启Gzip、开启http服务器Gzip、利用php本身的Gzip。

    1. 在Contol Panel开启Gzip

    1.1 CPanel中开启Gzip

    在“SoftWare and Services”那一栏中“Optimize Website”:

    (more…)

  • 64M内存的VPS能干点什么?

    1. VPS相关参数

    买的是HostingInside的VPS,参数:

    1. 台湾人办的;
    2. 服务器位于Fullerton, LA,美国西岸,国内速度不错,HE的网络;
    3. 一个ipv4地址,两个ipv6地址(这是我看上它的重要原因);
    4. 基于OpenVZ,64M内存,300MCPU,无Burst,不支持swap;

    2.  配置Nginx+php跑WordPress

    10.21中午11点半买的,一个多小时之后开通,然后紧接着该服务器所在机房网络出现故障,服务器离线2小时-__-。安装了debian5,占资源少得让你吃惊:

    按照vpsee的方法换了几个软件,裸系统只占不到10M的内存,比起Windows那个吃内存的劲,让人暗爽。
    (more…)

  • Ubuntu Server覆盖安装Nginx并配置Etags & Expires

    image Ubuntu是基于Debian的,继承了Debian的优良特性,apt就是其一。每次要装软件直接apt-get install解决问题,非常方便。但是源里的软件相对比较过时,并且缺乏定制性(比如软件的小插件等)。
    Ubuntu 9.04里带的Nginx是0.6.32版,据Jiucool情报讲,有漏洞。当时就想编译安装一个,但是苦于缺少一些库又没时间一一添加而没有安装。今天Ubuntu源里的Nginx更新到了0.6.35,修正了Bug,偶直接给Upgrade了一下。
    这两天又折腾加速,YSlow评级要想到A的话,须让Nginx给静态元素加Etags,需要加个插件。加插件的话就要重新编译Nginx,干脆一不做二不休,干掉现在的0.6,搞个0.7.62玩。
    最方便就是覆盖掉现在的老版本的Nginx,服务那些脚本就都不用重写直接可以用了。 (more…)