本文主要介绍php字符串操作的常见问题,并结合实例分析php对于json和字符串转换问题的操作。 有需要的同学可以参考以下
记得学php的时候php字符串操作,听到过一句很牛逼的话:所有的程序都是字符串,所谓的编程无非就是让数据像流水一样在各个代码页之间流动。 在我目前的工作中,我确实发现数据格式是一个难题,涉及到数据的组装、反汇编和重新组装。
之所以提到Json,是因为在使用ajax的时候,经常会涉及到程序与Js之间的数据交互。 因为Js不认识PHP中的字段,而PHP也不认识JS中的字段或对象。 这时候Json的自由格式就可以很好的解决这个问题。
它具有以下格式:
例如:
{"username": "Eric","age":23,"sex": "man"}
我们强大的PHP已经提供了外部函数:json_encode()和json_decode()。
很容易理解,json_encode()就是将PHP字段转换为Json。 相反,json_decode()是将Json转换为PHP字段。
例如:
$array = array("name" => "Eric","age" => 23); echo json_encode($array);
该程序将复制出:
{"name":"Eric","age":23}
登录后复制
$array = array(0 => "Eric", 1 => 23); echo json_encode($array);
登录后复制
该程序将复制出:
["Eric",23]
登录后复制
除了这些相对自由的格式之外,比较常见的就是字符串和链表之间的交换和拼接:
1. 将字符串转换为链表:
爆炸(单独,字符串)
例子:
$str = "Hello world It's a beautiful day"; explode(" ",$str);//以空格为分界点
登录后复制
返回:
array([0]=>"Hello",[1]=>"world",[2]=>"It's",[3]=>"a",[4]=>"beautiful",[5]=>"day")
登录后复制
将序列化后的字符串返回到原来的链表模式。
2. 将字段转换为字符串:
implode(separate,array)//explode的逆操作php字符串操作,separate默认为空字符
例子:
$array = ('hello','world','!'); implode(" ",$array);
登录后复制
返回:
"hello world !"
登录后复制