分类 技术分享 下的文章

一、json_encode()

<?php
$arr =array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
?>

输出

{"a":1,"b":2,"c":3,"d":4,"e":5}

再看一个对象转换的例子:

$obj->body           = 'another post';
$obj->id             = 21;
$obj->approved       = true;
$obj->favorite_count = 1;
$obj->status         = NULL;
echo json_encode($obj);

- 阅读剩余部分 -

数据库建立索引常用的规则如下:
1、表的主键、外键必须有索引; 
2、数据量超过300的表应该有索引; 
3、经常与其他表进行连接的表,在连接字段上应该建立索引; 
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 
5、索引应该建在选择性高的字段上; 
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:

- 阅读剩余部分 -

本文介绍了PHP开发中遇到的数组问题,这里介绍了判断PHP数组为空的5种方法,有需要的朋友可以借鉴参考一下。

1. isset功能:判断变量是否被初始化

说明:它并不会判断变量是否为空,并且可以用来判断数组中元素是否被定义过
注意:当使用isset来判断数组元素是否被初始化过时,它的效率比array_key_exists高4倍左右

<?php
$a = '';
$a['c'] = '';
if (!isset($a)) echo '$a 未被初始化' . "";
if (!isset($b)) echo '$b 未被初始化' . "";
if (isset($a['c'])) echo '$a 已经被初始化' . "";
// 显示结果为
// $b 未被初始化
// $a 已经被初始化

- 阅读剩余部分 -

public: 公有类型

在子类中可以通过self::var调用public方法或属性,parent::method调用父类方法
在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型

在子类中可以通过self::var调用protected方法或属性,parent::method调用父类方法
在实例中不能通过$obj->var 来调用  protected类型的方法或属性

- 阅读剩余部分 -

1、=>的用法
在php中数组默认键名是整数,也可以自己定义任意字符键名(最好是有实际意义),如:

$css=array('style'=>'0',‘color’=>‘green‘);

则$css['style']=='0',$css['color']=='green'。

- 阅读剩余部分 -

import json

json_data = """{
   "favourite":{
      "bkmrk":{
         "id1490843709594066":{
            "guid":"904eff52277f403b89f6410fe2758646.11",
            "lcate":"1"
         },
         "id1490843712805183":{
            "guid":"58457f60eca64025bc43a978f9c98345.16",
            "lcate":"2"
         },
         "id149084371467327":{
            "guid":"a0f907f9dc8b40f689b083f3eba7228b.16",
            "lcate":"3"
         },
         "id1490843716295393":{
            "guid":"eb75d929455e468bb712e7bc2025d11a.16",
            "lcate":"4"
         }
      }
   }
}"""

data = json.loads(json_data)
for v in data['favourite']['bkmrk'].values():
    print("%s;%s" % (v['lcate'],  v['guid']))

eg:

#! /usr/bin/python  
import sys  
import string  
import os  
base_dir="/home/qinjianwang/mtr_dir/2012_09_12/tw"  
as_uniq_info=base_dir + "/as_uniq_info"  
get_line_num="wc -l " + as_uniq_info + " | awk '{print $1}'" ###get the lines of "as_uniq_info"  
line_num = os.popen(get_line_num).read().strip('\n')  
global VEXNUM 

VEXNUM = string.atoi(line_num)

- 阅读剩余部分 -

enumerate是python 2.3中新增的内置函数,它的英文说明为:

enumerate( iterable)

Return an enumerate object. iterable must be a sequence, an iterator,or some other object which supports iteration. The next() method ofthe iterator returned by enumerate() returns a tuple containing acount (from zero) and the corresponding value obtained from iteratingover iterable. enumerate() is useful for obtaining an indexed series:(0, seq[0]), (1, seq[1]), (2, seq[2]), .... New in version 2.3.

- 阅读剩余部分 -

通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。

这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块。

1.使用os模块
os模块中的os.path.exists()方法用于检验文件是否存在。

判断文件是否存在

import os
#如果存在返回True
>>>os.path.exists('test_file.txt')
>>>True
#如果不存在返回False
>>>os.path.exists('no_exist_file.txt')
>>>False

- 阅读剩余部分 -

Python中是有查找功能的,四种方式:in、not in、count、index,前两种方法是保留字,后两种方式是列表的方法。

下面以a_list = ['a','b','c','hello'],为例作介绍:

1、 判断值是否在列表中,in操作符

# 判断a是否在列表中,并返回True或False
'a' in a_list

- 阅读剩余部分 -