php get java properties fix(utf-8)

$properties = parse_properties ( 'prop.properties' );
var_export ( $properties );
function unicode2utf8($str) {
	if (! $str)
		return $str;
	$decode = json_decode ( $str );
	if ($decode)
		return $decode;
	$str = '["' . $str . '"]';
	$decode = json_decode ( $str );
	if (count ( $decode ) == 1) {
		return $decode [0];
	}
	return $str;
}
function parse_properties($propertiespath) {
	$txtProperties = file_get_contents ( $propertiespath );
	$result = array ();
	$lines = split ( "n", $txtProperties );
	$key = "";
	$isWaitingOtherLine = false;
	foreach ( $lines as $i => $line ) {
		if (empty ( $line ) || (! $isWaitingOtherLine && strpos ( $line, "#" ) === 0))
			continue;

		if (! $isWaitingOtherLine) {
			$key = substr ( $line, 0, strpos ( $line, '=' ) );
			$value = substr ( $line, strpos ( $line, '=' ) + 1, strlen ( $line ) );
		} else {
			$value .= $line;
		}
		/* Check if ends with single '' */
		if (strrpos ( $value, "" ) === strlen ( $value ) - strlen ( "" )) {
			$value = substr ( $value, 0, strlen ( $value ) - 1 ) . "n";
			$isWaitingOtherLine = true;
		} else {
			$isWaitingOtherLine = false;
		}
		$value = trim ( $value );
		$value = preg_replace ( "/(\uw{4})/e", "unicode2utf8('1')", $value );
		$value = preg_replace ( "/\\/", "", $value );
		$value = preg_replace ( "/\:/", ":", $value );
		$result [$key] = $value;
		unset ( $lines [$i] );
	}
	return $result;
}

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

支付宝 错误代码 ILLEGAL_SIGN

签名异常,不解释。

静排查。可导入异常的参数有

body

subject

一开始以为长度限制,因为官方文档申明

body (string 1000)

subject (string 256)

截取,依旧出问题

经各种排查,发现问题原因为参数出现特殊字符。现提供特殊字符的过滤处理

处理一:

		$parameter['subject']=preg_replace('/s/', '', $parameter['subject']);
		$parameter['body']=preg_replace('/s/', '', $parameter['body']);

处理二:

		//限制提交字符长度
		//过滤特殊字符 s 否则识别有问题
		$parameter['subject']= preg_split('/[^())(【】.!!w+-*^x{4e00}-x{9fa5}]+/u', $parameter['subject']);
		$parameter['subject']=implode(' ', $parameter['subject']);
		$parameter['body']= preg_split('/[^())(【】.!!w+-*^x{4e00}-x{9fa5}]+/u', $parameter['body']);
		$parameter['body']=implode(' ', $parameter['body']);

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827

Sqlite 使用

官网:https://bitbucket.org/xerial/sqlite-jdbc

jar:https://bitbucket.org/xerial/sqlite-jdbc/downloads

mysql 转 sqlite 相关处理

基本上语法通用,需要特殊处理的有.

用navicat premium 导出两种数据库,比较后,需要处理的有

1. ` 全部替换成 ”

2.   类型只有 text integer blob real  这些。根据需要进行处理。

 

异常判断

encrypted sqlite db

如果用 navicat premium 打开正常,直接用记事本看下当前的 sqlite 的版本是多少.

这边的是php 5.2 默认的扩展是 sqlite 2.0

需要打开,然后做下转换处理.

blob类型取出时,被转码成

需要做特殊处理

stripcslashes()

这边只是普通的查询,具体情况自行判断.

转发请注明出处http://blog.martoo.cn
如有漏缺,请联系我 QQ 243008827