Home > php教程 > php手册 > body text

PHP数组传递给JavaScript以及json_encode的gbk中文乱码的解决 - jerrylsxu

WBOY
Release: 2016-05-20 10:19:21
Original
1237 people have browsed it

首先关于json_encode的gbk中文乱码,创建JSON函数,这一段来自网上某一位大侠

复制代码
<span style="color: #008000;">/*</span><span style="color: #008000;">*************************************************************
 *
*    使用特定function对数组中所有元素做处理
*    @param    string    &$array        要处理的字符串
*    @param    string    $function    要执行的函数
*    @return boolean    $apply_to_keys_also        是否也应用到key上
*    @access public
*
************************************************************</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">function</span> arrayRecursive(&<span style="color: #800080;">$array</span>, <span style="color: #800080;">$function</span>, <span style="color: #800080;">$apply_to_keys_also</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">)
{
    </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$array</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span> => <span style="color: #800080;">$value</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">is_array</span>(<span style="color: #800080;">$value</span><span style="color: #000000;">)) {
            arrayRecursive(</span><span style="color: #800080;">$array</span>[<span style="color: #800080;">$key</span>], <span style="color: #800080;">$function</span>, <span style="color: #800080;">$apply_to_keys_also</span><span style="color: #000000;">);
        } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {
            </span><span style="color: #800080;">$array</span>[<span style="color: #800080;">$key</span>] = <span style="color: #800080;">$function</span>(<span style="color: #800080;">$value</span><span style="color: #000000;">);
        }

        </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$apply_to_keys_also</span> && <span style="color: #008080;">is_string</span>(<span style="color: #800080;">$key</span><span style="color: #000000;">)) {
            </span><span style="color: #800080;">$new_key</span> = <span style="color: #800080;">$function</span>(<span style="color: #800080;">$key</span><span style="color: #000000;">);
            </span><span style="color: #0000ff;">if</span> (<span style="color: #800080;">$new_key</span> != <span style="color: #800080;">$key</span><span style="color: #000000;">) {
                </span><span style="color: #800080;">$array</span>[<span style="color: #800080;">$new_key</span>] = <span style="color: #800080;">$array</span>[<span style="color: #800080;">$key</span><span style="color: #000000;">];
                </span><span style="color: #0000ff;">unset</span>(<span style="color: #800080;">$array</span>[<span style="color: #800080;">$key</span><span style="color: #000000;">]);
            }
        }
    }
}

</span><span style="color: #008000;">/*</span><span style="color: #008000;">*************************************************************
 *
*    将数组转换为JSON字符串(兼容中文)
*    @param    array    $array        要转换的数组
*    @return string        转换得到的json字符串
*    @access public
*
************************************************************</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">function</span> JSON(<span style="color: #800080;">$array</span><span style="color: #000000;">) {
    arrayRecursive(</span><span style="color: #800080;">$array</span>, 'urlencode', <span style="color: #0000ff;">true</span><span style="color: #000000;">);
    </span><span style="color: #800080;">$json</span> = json_encode(<span style="color: #800080;">$array</span><span style="color: #000000;">);
    </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">urldecode</span>(<span style="color: #800080;">$json</span><span style="color: #000000;">);
}</span>
Copy after login
复制代码

连接数据库取值给数组$array1

复制代码
<span style="color: #800080;">$dbcnx</span> = @<span style="color: #008080;">mysql_connect</span> ( "localhost", "root", "1234"<span style="color: #000000;"> );
</span><span style="color: #0000ff;">if</span> (! <span style="color: #800080;">$dbcnx</span><span style="color: #000000;">) {
    </span><span style="color: #0000ff;">echo</span> ("Unable to connect to the " . "database server at this time."<span style="color: #000000;">);
    </span><span style="color: #0000ff;">exit</span><span style="color: #000000;"> ();
}

</span><span style="color: #0000ff;">if</span> (! @<span style="color: #008080;">mysql_select_db</span> ( "pms"<span style="color: #000000;"> )) {
    </span><span style="color: #0000ff;">echo</span> ("Unable to locate the joke " . "database at this time."<span style="color: #000000;">);
    </span><span style="color: #0000ff;">exit</span><span style="color: #000000;"> ();
}

</span><span style="color: #008080;">mysql_query</span> ( "SET NAMES 'GB2312'"<span style="color: #000000;"> );

    </span><span style="color: #800080;">$q</span>=<span style="color: #008080;">mysql_query</span>("select * from ability where ALV = 1"<span style="color: #000000;">); 
    </span><span style="color: #0000ff;">while</span>(<span style="color: #800080;">$row</span>=<span style="color: #008080;">mysql_fetch_array</span>(<span style="color: #800080;">$q</span><span style="color: #000000;">)){ 
     </span><span style="color: #800080;">$array1</span>[] = <span style="color: #800080;">$row</span><span style="color: #000000;">[AName];
}</span>
Copy after login
复制代码

数组array1传递到JavaScript给数组ability1

复制代码
<script type="text/javascript" src="JS/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
<span style="color: #0000ff;">var ability1=<?php echo JSON($array1);?><span style="color: #000000;">;
<span style="color: #0000ff;">var a=eval("ability1"<span style="color: #000000;">);
alert(a[0]);
</script>
Copy after login
复制代码
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template