邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

php 解决json_encode中文UNICODE转码问题
前天在做一个功能,往数据表插入一个json数据,发现数据竟然是这样
{"transport":"u5965u8fea","reason":"u6e9cu5b8c"}
中文自动被转码了,于是百度了下,找到了几种解决办法

1.要求php5.4版本以上
<?php
echo json_encode("中文", JSON_UNESCAPED_UNICODE);

2.
function decodeUnicode($str){
    return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
        create_function(
            '$matches',
            'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
        ),
        $str);
}
$array = array("transport"=>"英菲尼迪","reason"=>"出差");
$json = decodeUnicode(json_encode($array));
然后插入数据表,读取的时候
$array_new = (array)json_decode($json);
print_r($array_new);

php读取CSV文件
php读取CSV文件

<?php
$result = _import_csv('./ceshi.csv');
echo "<pre>";
print_r($result);
echo "</pre>";

function  _import_csv($filename){
$return = array();
$row = 0;
if (($handle = fopen($filename,"r" )) !==  FALSE ) {
    while (($data = fgetcsv($handle,1000)) !==  FALSE ) {
    if($row>=1){ //过滤第一行标题
    $num = count($data);
        for ($i=0;$i<$num;$i++) {
        $data[$i] = trim($data[$i]);
        if($data[$i]==''){ //如果为空,则跳过此行继续循环
        continue;
        }else{
        $return[$row][$i] = $data[$i];
        }
       
      }
    }
      $row++;
    }
    fclose($handle);

    return $return;
}else{
return $return;
}


?>

csv文件格式如下,文件名ceshi.csv
姓名 账号
action 1
xing 2
dong 3

PHPRPC
PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。
在PHP中设置分布式memcache存取
在PHP中设置分布式memcache存取

//1. 创建对象
$mem = new Memcache();
//2. 添加服务
$mem->addServer("192.168.100.101",11211);
$mem->addServer("192.168.100.102",11211);
$mem->addServer("192.168.100.103",11211);
//3. 放置信息
$mem->add("mystr","hello memcache!",MEMCACHE_COMPRESSED,0);
$mem->add("myarray",array(10,20,30,40),MEMCACHE_COMPRESSED,0);
$mem->add("myob",new Stu(),MEMCACHE_COMPRESSED,0);
//4. 获取信息
echo $mem->get("mystr")."<br/>";
var_dump($mem->get('myarray'));
echo "<br/>";
$mem->get("myob")->getinfo();
laravel框架redis测试
laravel框架redis测试
laravel版本:5.1
配置redis
config/database.php

'redis' => [
    'cluster' => false,
    'default' => [
        'host'     => '127.0.0.1',
        'port'     => 7379, //我的redis端口
        'password' => 1413,//密码 auth
        'database' => 0,
    ],
],
由于我的redis扩展是用perl安装的,需要在config/app.php中修改别名(aliases)
修改
'Redis' => Illuminate\Support\Facades\Redis::class,

'Rediss' => Illuminate\Support\Facades\Redis::class,
然后在控制器
加入命名空间
use rediss;
在控制器的方法中
Rediss::set('name','xingdong');
echo Rediss::get('name');

MethodNotAllowedHttpException in RouteCollection.php line 219:
laravel框架访问pages/show里报错
MethodNotAllowedHttpException in RouteCollection.php line 219:

我的路由配置
Route::resource('pages', 'PagesController',['except' => ['index','show']]);
需要配置错误页面

新建resources/views/errors/405.blade.php页面

即可解决


laravel框架下安装laravel_debug
安装laravel_debug

进入程序根目录
composer require barryvdh/laravel-debugbar
执行完毕后
在 config/app.php
在服务提供者列表 //providers里面 
Barryvdh\Debugbar\ServiceProvider::class,
在别名数组中添加 //aliases 里面
'Debugbar' => Barryvdh\Debugbar\Facade::class,

然后再返回程序根目录,执行
php artisan vendor:publish  

显示结果如下
Copied File [/vendor/barryvdh/laravel-debugbar/config/debugbar.php] To [/config/debugbar.php]  
Publishing complete for tag []!

然后我们再通过浏览器访问laravel程序的时候 就可以在网页的下面看到标识了

QQ截图20151215213803.png
php xhprof扩展的安装和测试使用
xhprof的安装和测试使用
安装
wegt http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz

cd xhprof-0.9.4/extension/
/alidata/server/php/bin/phpize //我的php的安装目录是/alidata/server/php
./configure --with-php-config=/alidata/server/php/bin/php-config
make && make install
然后打开php的配置文件
vim /alidata/server/php/etc/php.ini
加入以下代码
extension=xhprof.so
xhprof.output_dir=/tmp/xhprof

重启php
killall php-fpm
php-fpm

然后执行php -m 就可以看到xhprof 这个模块
或者执行 php --ri xhprof 也可以
会看到
xhprof
xhprof => 0.9.2
CPU num => 1

xhprof 自带了一个测试的例子
把expmple/simple.php(只复制simple.php文件),xhprof_html/,xhprof_lib/ 拷贝到你的程序目录下
打开simple.php
将xhprof_enable()改为
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY)
让它也显示cpu和内存信息

将最后一段echo一行修改为:
echo '<a href="/xhprof_html/index.php?run='.$run_id.'&source=xhprof_foo" target="_blank">count</a>';
然后运行此php文件

XHProf输出说明
1. Inclusive Time : 包括子函数所有执行时间。
2. Exclusive Time/Self Time : 函数执行本身花费的时间,不包括子树执行时间。
3. Wall Time : 花去了的时间或挂钟时间。
4. CPU Time : 用户耗的时间+ 内核耗的时间
5. Inclusive CPU : 包括子函数一起所占用的CPU
6. Exclusive CPU : 函数自身所占用的CPU


优惠券
最新微语