PHP命令行模式

1.PHP运行指定文件
php my_script.php
php -f my_script.php

2.命令行直接运行php代码
php -r ‘print_r(get_defined_constants());’
php -r ‘echo time();’

3.获取参数
php -r ‘var_dump($argv);’ — Blog
php -r ‘var_dump($argc);’ — Blog
备注:$argv[1] 可以获取到Blog,$argc是获取传递了多少个参数

4.编写PHP脚本
#!/usr/bin/php
<?php
var_dump($argv);
if ($argv[1] ==’Joyous’) {
echo ‘hello Joyous’;
} else {
echo ‘please input Joyous’;
}
?>
执行脚本
./test.php -a
输出结果
array(2) {
[0]=>
string(14) “./phpshell.php”
[1]=>
string(2) “-a”
}
please input Joyous

备注:需要有运行的权限chmod +x test.php

5.其他命令参数(部分)
php -a 进入PHP交互模式,这个时候可以使用tab以及上下键看看!
php -c 可以指定自定义php.ini文件
php -n 完全忽略php.ini(php4.3.0之后有效)
php -d 可以设置再php.ini中设置项
php -i 输出phpinfo()信息
php -l 可以检查php文件语法是否有错误(不能和-r参数一起使用)
php -m 查看加载的PHP模块以及Zend模块
php -r 运行单行php代码(注意不要带<?php ?>)
php -v 显示php版本
php -w 显示除去了注释和多余空白的源代码
php -z 加载Zend库

参考:http://www.php.net/manual/zh/features.commandline.php

URL参数加密

php
function valEncrypt($value, $key) {
    $encrypt_key = md5(rand(0, 32000));
    $ctr = 0;
    $tmp = '';
    for($i = 0;$i < strlen($value); $i++) {
        $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
        $tmp .= $encrypt_key[$ctr].($value[$i] ^ $encrypt_key[$ctr++]);
    }
    return base64_encode(Encrypt($tmp, $key));
}
function valDecrypt($txt, $key) {
    $txt = Encrypt(base64_decode($txt), $key);
    $tmp = '';
    for($i = 0;$i < strlen($txt); $i++) {
        $md5 = $txt[$i];
        $tmp .= $txt[++$i] ^ $md5;
    }
    return $tmp;
}

function Encrypt($txt, $encrypt_key) {
    $encrypt_key = md5($encrypt_key);
    $ctr = 0;
    $tmp = '';
    for($i = 0; $i < strlen($txt); $i++) {
        $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
        $tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
    }
    return $tmp;
}

$a = '中文123456';
$key = '8a5da52ed126447d359e70c05721a8aa';
echo $text =valEncrypt($a, $key);
echo '
'; echo valDecrypt($text, $key);

 

mac安装memcache

  1. 安装memcached服务
  2. brew install memcached
  3. 配置开机启动(用brew安装之后下面会提示怎么启动)
  4. ln -sfv /usr/local/opt/memcached/*.plist ~/Library/LaunchAgents
  5.   launchctl load  ~/Library/LaunchAgents/homebrew.mxcl.memcached.plist
  6. 启动memcached
  7. memcached –d –m 2048 –p 11211
  8. 说明:以守护进程运行memcache并设置2g内存,端口是11211
  9. 测试memcache是否启动
  10. telnet 127.0.0.1 11211
  11. 安装memcache扩展
  12. wget http://pecl.php.net/get/memcache-3.0.8.tgz
  13. tar -xf ./memcache-1.4.tgz
  14. cd memcache-1.4
  15. phpize
  16. ./configure
  17. make
  18. sudo make install
  19. 安装完毕看到
  20. Installing  shared extensions:     /usr/lib/php/extensions/no-debug-non-zts-20090626/
  21. 修改php.ini
  22. 添加extension=memcache.so
  23. 重启apache或者nginx即可

备注:memcache服务端和客户端要一致,以免发生其他意外

mac安装redis以及phpredis扩展

1. git clone git://github.com/nicolasff/phpredis.git

2.cd phpredis

3.phpize

4../configure

5.make

6.sudo make install

然后编辑php.ini文件添加

extension=redis.so

备注:

如果phpize提示

Cannot find autoconf. Please check your autoconf installation
and the $PHP_AUTOCONF environment variable.
Then, rerun this script.

那么需要编译安装m4和autoconf

m4路径: http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz

autoconf路径:http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz

redis图形界面

#git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git
#cd phpRedisAdmin/
#git clone https://github.com/nrk/predis.git