<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>omiga &#187; JSON</title>
	<atom:link href="http://omiga.org/blog/archives/tag/json/feed" rel="self" type="application/rss+xml" />
	<link>http://omiga.org/blog</link>
	<description>简单就好</description>
	<lastBuildDate>Thu, 26 Apr 2012 04:18:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>再玩PHP</title>
		<link>http://omiga.org/blog/archives/565</link>
		<comments>http://omiga.org/blog/archives/565#comments</comments>
		<pubDate>Thu, 13 Nov 2008 05:45:19 +0000</pubDate>
		<dc:creator>omiga</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://omiga.org/blog/?p=565</guid>
		<description><![CDATA[上一次玩PHP是在遥远的半年前的毕业设计，然后就是一个畸形儿，然后就导致我毕业答辩做了两次～···往事不堪回首～···这次还是给别人做了个小站，做完后都心有余悸～···半年之后忘光光，基本是边翻手册边做的。记下来免得以后到处翻～···（PHP高手请绕道～） PHP-MySQL 首先建立一个到MySQL服务器的连接： $link = mysql_connect(’数据库所在位置’，’数据库账号’，’数据库密码’); 当没有提供可选参数时使用以下默认值：server=&#8217;localhost:3306&#8242;，username=服务器进程所有者的用户名，password=空密码。 连接数据库： 上面只是连接到MySQL，而没有连接到具体的数据库，所以需要连接到数据库才能进行相关操作。 mysql_select_db("数据库名","mysql连接名"); 如果数据库连接成功就可以执行sql命令进行相关的数据库操作了： $result = mysql_query("select * from user"，$link); 如果没有指定$link，则使用上一个打开的连接。如果没有打开的连接，会尝试无参数调用mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。 数据查询结果(针对有结果的sql操作)： while ($row = mysql_fetch_row($result)) { 　　echo $row['field']; } 也可以这样： while ($row = mysql_fetch_row($result)){ 　　for($i=0;$i&#60;count($row);$i++){ 　　　　echo $row[$i]; 　　} } 操作完成后最好释放无用的资源以提高系统性能： mysql_free_result($result); mysql_close($link); 文件上传（POST） 首先表单需设置属性：enctype=”multipart/form-data”，否则文件无法上传。 $_FILES数组： $_FILES['userfile']['name']　客户端机器文件的原名称。 $_FILES['userfile']['type']　文件的 MIME 类型，如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查，因此不要想当然认为有这个值。 $_FILES['userfile']['size']　已上传文件的大小，单位为字节。 $_FILES['userfile']['tmp_name']　文件被上传后在服务端储存的临时文件名。 $_FILES['userfile']['error']　和该文件上传相关的错误代码。此项目是在 PHP 4.2.0 版本中增加的。 文件被上传后，默认地会被储存到服务端的默认临时目录中，除非php.ini中的upload_tmp_dir设置为其它的路径。服务端的默认临时目录可以通过更改PHP运行环境的环境变量TMPDIR来重新设置，但是在PHP脚本内部通过运行putenv()函数来设置是不起作用的。该环境变量也可以用来确认其它的操作也是在上传的文件上进行的。 使文件上传生效 is_uploaded_file　判断文件是否是通过HTTP POST上传的。 move_uploaded_file(string filename, string destination)　本函数检查并确保由filename指定的文件是合法的上传文件（即通过PHP的HTTP POST上传机制所上传的）。如果文件合法，则将其移动为由destination指定的文件。 md5加密 PHP中有现成的函数——string [...]]]></description>
			<content:encoded><![CDATA[<p>上一次玩PHP是在遥远的半年前的<a href="http://omiga.org/blog/archives/133">毕业设计</a>，然后就是一个<a href="http://omiga.org/bk/">畸形儿</a>，然后就导致我毕业答辩做了<a href="http://omiga.org/blog/archives/149">两次</a>～···往事不堪回首～···这次还是给别人做了个小站，做完后都心有余悸～···半年之后忘光光，基本是边翻手册边做的。记下来免得以后到处翻～···（PHP高手请绕道～）</p>
<p><strong>PHP-MySQL</strong></p>
<p>首先建立一个到MySQL服务器的连接：</p>
<pre>$link = mysql_connect(’数据库所在位置’，’数据库账号’，’数据库密码’);</pre>
<p>当没有提供可选参数时使用以下默认值：server=&#8217;localhost:3306&#8242;，username=服务器进程所有者的用户名，password=空密码。</p>
<p>连接数据库：</p>
<p>上面只是连接到MySQL，而没有连接到具体的数据库，所以需要连接到数据库才能进行相关操作。</p>
<pre>mysql_select_db("数据库名","mysql连接名");</pre>
<p>如果数据库连接成功就可以执行sql命令进行相关的数据库操作了：</p>
<pre>$result = mysql_query("select * from user"，$link);</pre>
<p>如果没有指定$link，则使用上一个打开的连接。如果没有打开的连接，会尝试无参数调用mysql_connect() 函数来建立一个连接并使用之。查询结果会被缓存。</p>
<p>数据查询结果(针对有结果的sql操作)：</p>
<pre>while ($row = mysql_fetch_row($result)) {
　　echo $row['field'];
}</pre>
<p>也可以这样：</p>
<pre>while ($row = mysql_fetch_row($result)){
　　for($i=0;$i&lt;count($row);$i++){
　　　　echo $row[$i];
　　}
}</pre>
<p>操作完成后最好释放无用的资源以提高系统性能：</p>
<pre>mysql_free_result($result);
mysql_close($link);</pre>
<p><strong>文件上传（POST）</strong></p>
<p>首先表单需设置属性：enctype=”multipart/form-data”，否则文件无法上传。</p>
<p>$_FILES数组：</p>
<ul>
<li>$_FILES['userfile']['name']　客户端机器文件的原名称。</li>
<li>$_FILES['userfile']['type']　文件的 MIME 类型，如果浏览器提供此信息的话。一个例子是“image/gif”。不过此 MIME 类型在 PHP 端并不检查，因此不要想当然认为有这个值。</li>
<li>$_FILES['userfile']['size']　已上传文件的大小，单位为字节。</li>
<li>$_FILES['userfile']['tmp_name']　文件被上传后在服务端储存的临时文件名。</li>
<li>$_FILES['userfile']['error']　和该文件上传相关的错误代码。此项目是在 PHP 4.2.0 版本中增加的。</li>
</ul>
<p>文件被上传后，默认地会被储存到服务端的默认临时目录中，除非<var class="filename"><span style="font-style: normal;">php.ini</span></var>中的upload_tmp_dir设置为其它的路径。服务端的默认临时目录可以通过更改PHP运行环境的环境变量<span class="envar">TMPDIR</span>来重新设置，但是在PHP脚本内部通过运行putenv()函数来设置是不起作用的。该环境变量也可以用来确认其它的操作也是在上传的文件上进行的。</p>
<p><strong>使文件上传生效</strong></p>
<p>is_uploaded_file　判断文件是否是通过HTTP POST上传的。</p>
<p>move_uploaded_file(string filename, string  destination)　本函数检查并确保由<tt class="parameter">filename</tt>指定的文件是合法的上传文件（即通过PHP的HTTP  POST上传机制所上传的）。如果文件合法，则将其移动为由<tt class="parameter">destination</tt>指定的文件。</p>
<p><strong>md5加密</strong></p>
<p>PHP中有现成的函数——string md5( string str [, bool raw_output])，raw_output默认为false，函数返回32位字符串，如果将其设置为true则返回16位字符。</p>
<p><strong>session</strong></p>
<p>首先使用session_start()启用session，然后就可注册变量了，$_session['login'] = true，然后就可以跨页面访问该session变量了～···</p>
<p><strong>中文编码问题</strong></p>
<p>所有页面和数据库均使用的utf8编码，但是中文数据在phpmyadmin中总显示乱码，能正确读取，这个问题从一开始就搞到我崩溃，最后修改phpMyAdmin\libraries\select_lang.lib.php数组$GLOBALS['mysql_charset_map']中&#8217;utf-8&#8242;=&gt; &#8216;latin1&#8242;才算搞定～···(感谢TZ～)</p>
<p>关于JSON部分看<a href="http://omiga.org/blog/archives/153">这里</a>。</p>
<p>over～···</p>
<hr />
<p><small>© omiga for <a href="http://omiga.org/blog">omiga</a>, 2008. |
<a href="http://omiga.org/blog/archives/565">Permalink</a> |
<a href="http://omiga.org/blog/archives/565#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://omiga.org/blog/archives/565&title=再玩PHP">del.icio.us</a>
<br/>
Post tags: <a href="http://omiga.org/blog/archives/tag/json" rel="tag">JSON</a>, <a href="http://omiga.org/blog/archives/tag/mysql" rel="tag">mysql</a>, <a href="http://omiga.org/blog/archives/tag/php" rel="tag">PHP</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://omiga.org/blog/archives/565/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP and JSON</title>
		<link>http://omiga.org/blog/archives/153</link>
		<comments>http://omiga.org/blog/archives/153#comments</comments>
		<pubDate>Tue, 24 Jun 2008 09:02:32 +0000</pubDate>
		<dc:creator>omiga</dc:creator>
				<category><![CDATA[LAMP]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[json_decode]]></category>
		<category><![CDATA[json_encode]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://omiga.org/blog/?p=153</guid>
		<description><![CDATA[PHP5中新增加两个函数json_encode和json_decode以加强对JSON的支持～第一个函数将把任意类型的数据对象转换为一组序列化数据，以供 JavaScript 处理。第二个函数将把序列化数据解码，并将其转换为基本 PHP 对象或联合数组。 json_encode主要用于将数组转换成JSON格式返回给客户端的JavaScript，转换时我们需注意以下几点： PHP自动分配的数字索引的数组转换后依然返回的是原数组，无法转换成JSON格式的数据，自定义的数字索引数组array(1=&#62;”omiga”,2=&#62;”http://omiga.org”)则可正常转换； 转换后的JSON数据的name与数组的索引对应。数组array(“name”=&#62;”omiga”,”homepage”=&#62;”http://omiga.org”)转换后的JSON数据是：{“name”:”omiga”,”homepage”:”http://omiga.org”}； 非UTF-8编码下的中文无法正常转换，必须先将数组转换成UTF-8再用json_encode进行转换（很麻烦～等会还得转回去）。 json_decode默认返回的是stdClass 的对象，可以使用json_decode(jsonData,true)创建数组。 相关阅读 http://www.openphp.cn/blog.php?blog_id=12 http://www.ibm.com/developerworks/cn/opensource/os-php-v523 http://hi.baidu.com/yeakyang/blog/item/604357078f835ec87b89478c.html © omiga for omiga, 2008. &#124; Permalink &#124; No comment &#124; Add to del.icio.us Post tags: JSON, json_decode, json_encode, PHP]]></description>
			<content:encoded><![CDATA[<p>PHP5中新增加两个函数json_encode和json_decode以加强对JSON的支持～第一个函数将把任意类型的数据对象转换为一组序列化数据，以供 JavaScript 处理。第二个函数将把序列化数据解码，并将其转换为基本 PHP 对象或联合数组。</p>
<p>json_encode主要用于将数组转换成JSON格式返回给客户端的JavaScript，转换时我们需注意以下几点：</p>
<ol>
<li><span style="color: #000000;">PHP自动分配的数字索引</span><span style="color: #000000;">的数组转换后依然返回的是原数组，无法转换成JSON格式的数据，</span><span style="color: #000000;">自定义的数字索引数组array(1=&gt;”omiga”,2=&gt;”http://omiga.org”)则可正常转换；</span></li>
<li><span style="color: #000000;">转换后的JSON数据的name与数组的索引对应。数组array(“name”=&gt;”omiga”,”homepage”=&gt;”http://omiga.org”)转换后的JSON数据是：{“name”:”omiga”,”homepage”:”http://omiga.org”}；</span></li>
<li><span style="color: #000000;">非UTF-8编码下的中文无法正常转换，必须先将数组转换成UTF-8再用json_encode进行转换（很麻烦～等会还得转回去）。</span></li>
</ol>
<p><span style="color: #000000;">json_decode默认返回的是</span><code>stdClass</code> 的对象，可以使用json_decode(jsonData,true)创建数组。</p>
<p><br/><br />
<strong>相关阅读</strong></p>
<ul>
<li><a href="http://www.openphp.cn/blog.php?blog_id=12" target="_blank">http://www.openphp.cn/blog.php?blog_id=12</a></li>
<li><a href="http://www.ibm.com/developerworks/cn/opensource/os-php-v523" target="_blank">http://www.ibm.com/developerworks/cn/opensource/os-php-v523</a></li>
<li><a href="http://hi.baidu.com/yeakyang/blog/item/604357078f835ec87b89478c.html" target="_blank">http://hi.baidu.com/yeakyang/blog/item/604357078f835ec87b89478c.html</a></li>
</ul>
<hr />
<p><small>© omiga for <a href="http://omiga.org/blog">omiga</a>, 2008. |
<a href="http://omiga.org/blog/archives/153">Permalink</a> |
<a href="http://omiga.org/blog/archives/153#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://omiga.org/blog/archives/153&title=PHP and JSON">del.icio.us</a>
<br/>
Post tags: <a href="http://omiga.org/blog/archives/tag/json" rel="tag">JSON</a>, <a href="http://omiga.org/blog/archives/tag/json_decode" rel="tag">json_decode</a>, <a href="http://omiga.org/blog/archives/tag/json_encode" rel="tag">json_encode</a>, <a href="http://omiga.org/blog/archives/tag/php" rel="tag">PHP</a><br/>
</small></p>]]></content:encoded>
			<wfw:commentRss>http://omiga.org/blog/archives/153/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

