php4的json类库及示例
json一种轻量级的数据格式,这个格式的数据可以很容易的被转换为javascript对象的格式,用于服务器端和客户端的数据传递,用于解决xml的过多冗余标签造成数据传输量过大的问题。然而php4没有直接处理json的方法。
JSON-PHP是一个自动完成JSON编码和解码的php开源代码工具。
下载:http://www.eb163.com/code/json.rar
其中的TEST_JSON.php中包含了PHPUnit.php,是PEAR自带的单元测试工具,实际开发中可以不用。
示例代码:
<?
//create a new instance of Services_JSON
require_once('JSON.php');
$json = new Services_JSON();
// convert a complex value to JSON notation
$value = array('name'=>'luoch','age'=> 25,'data'=>'foo');
$output = $json->encode($value);
print($output);
//采用post方式发送数据: json={"name":'luoch',"age":25,"data":"foo"}
print($_REQUEST['json']);
$value= $json->decode(str_replace('\\','',$_REQUEST["json"]));
var_dump( $value);
echo "<br>".$value->data;
?>
注意:如果中文无法显示,请将编码改为UTF-8
php5与json
JSON是什么?通俗的说,它是一种数据的存储格式,就像PHP序列化后的字符串一样。它是一种数据描述。比如我们将一个数组序列化后存放,就可以很容易的反序列化后应用。JSON也是如此,只不过他搭建的是客户端Javascrīpt和服务端PHP的交互桥梁。我们用PHP生成JSON后的字符串,然后把这个字符串传给前台Javascrīpt,Javascirpt就可以很容易的将其反JSON然后应用。说通俗点,它真的很像数组。在运用的时候你完全可以这样理解。
如何使用JSON。PHP5.2开始内置了JSON的支持。当然,如果低于这个版本的话,那么市面上有很多PHP版本的实现(相关文章:php4的json类库及示例
<?php
$arr = array(
'name' => 'luocheng',
'nick' => 'luoch',
'contact' => array(
'email' => 'i@163.com',
'website' => 'http://www.luocheng.cn',
)
);
$json_string = json_encode($arr);
echo $json_string;
?>
Apache Rewrite 问号匹配问题
如:news.php?id=1 到 /news/index.php?id=1
方法一:
RewriteRule ^news\.php(.*) /news/index.php$1 [L]
方法二:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=(.+)$
RewriteRule ^news\.php$ /news/index.php?id=%1 [L]
解决Rewrit问号不能匹配
实用的免费中文分词服务
中文分词对于大型网站的搜索及SEO优化都是一个难点,同时也是一个重点。很多人会使用Lucene中文分词,但是想维护如此大的一个词库不是一件容易的事情,可行性值得考证。
在这种情况下为什么不使用他人提供的服务呢?
优点:
1、稳定、速度快、分词准确
2、不用维护
缺点:
1、他人的免费服务始终不放心,万一停了怎么办?
以下是百度热门相关关键字和discuz标签功能提供的免费ROA服务(php版函数)
轻量级的Flash音乐播放插件-Audio Player
很多博主都喜欢在自己的博客上面播放音乐,Audio Player可以让你轻松实现这个功能。与其它播放器不同的是,使用方便,小巧,并且可以加密路径。另外,这个播放器只支持mp3格式的文件。
先给大家听段笑话:
Alternative content
官方网站:http://wpaudioplayer.com/download
php加密函数:
function encodeSource($string) {
$source = utf8_decode($string);
$ntexto = "";
$codekey = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
for ($i = 0; $i < strlen($string); $i++) {
$ntexto .= substr("0000".base_convert(ord($string{$i}), 10, 2), -8);
}
$ntexto .= substr("00000", 0, 6-strlen($ntexto)%6);
$string = "";
for ($i = 0; $i < strlen($ntexto)-1; $i = $i + 6) {
$string .= $codekey{intval(substr($ntexto, $i, 6), 2)};
}
return $string;
}