php 替换的问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 18:00:55
function str_replace_cn($needle, $str, $haystack, $charset = "gb2312"){
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";

preg_match_all($re[$charset], $haystack, $match_haystack);
preg_match_all($re[$charset], $needle, $match_needle);

for($i = 0; $i < count($match_needle); $i ++){
if(!in_array($match_needle[0][$i], $match_haystack[0]))return $haystack;//无匹配
}

$match_haystack = $match_haystack[0];
$match_needle = $

看你的程序一堆代码,主要实现的功能是不是通过数组数据生成URL,并进行转码 和 查重的操作啊?
如果是的话,不需要这么麻烦吧?PHP里有更好的实现方法。

如果感兴趣再找我吧。

只说思想,
首先换成规范格式的字符串,
然后在字符串中进行替换操作
在根据原规范还原为数组

怎么弄见仁见智了!