<?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>php语言开发与网页应用实例参考网站</title>
	<atom:link href="http://www.sophie-php.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.sophie-php.com</link>
	<description>又一个 WordPress 站点</description>
	<lastBuildDate>Thu, 09 Feb 2012 01:48:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>PHP基础篇8</title>
		<link>http://www.sophie-php.com/php/97.html</link>
		<comments>http://www.sophie-php.com/php/97.html#comments</comments>
		<pubDate>Sun, 29 Jan 2012 01:19:37 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP基础篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=97</guid>
		<description><![CDATA[数组操作、sort、asort、ksort、array_push、array_shift]]></description>
			<content:encoded><![CDATA[<h3>数组操作、sort、asort、ksort、array_push、array_shift</h3>
<h4>数组变量赋值</h4>
<ul>
<li>当使用array的时候能简单地赋值数组变量。$a = array(&#8216;abc&#8217;, &#8216;def&#8217;, &#8216;ghi&#8217;);</li>
<li>分别代入时，生成如下数据。$a[0] = &#8216;abc&#8217;;$a[1] = &#8216;def&#8217;;$a[2] = &#8216;ghi&#8217;;</li>
<li>如果省略了下标，那么该数组将是最后一次自动分配。$a[] = &#8216;jkl&#8217;;$a[] = &#8216;mno&#8217;;</li>
</ul>
<h4>分解数组变量</h4>
<ul>
<li>数组变量可以很容易地分解使用列表$d = array(&#8216;abc&#8217;, &#8216;def&#8217;, &#8216;ghi&#8217;);list($a, $b, $c) = $d;</li>
<li>分别代入时，生成如下数据。$a = $d[0];$b = $d[1];$c = $d[2];</li>
</ul>
<h4>分解的字符串</h4>
<ul>
<li>设置字符串的变量和指标可以看到和访问字符分解。<br />
$a[0] = &#8217;0&#8242;、$a[1] 可见= &#8217;1&#8242;<br />
然而，反向，所以回来并加入作为参考，根本无法使用阵列。</li>
</ul>
<pre class="pre1">$a = '0123';
  print "&lt;P&gt;$a[0]&lt;/P&gt;\n";
  print "&lt;P&gt;$a[1]&lt;/P&gt;\n";
  print "&lt;P&gt;$a[2]&lt;/P&gt;\n";
  print "&lt;P&gt;$a[3]&lt;/P&gt;\n";</pre>
<h4>获取数组数</h4>
<ul>
<li>用count来为数组计数。<br />
作为增添字元上限、count($a)值为-1。</li>
</ul>
<pre class="pre1">	$a = array('abc', 'def', 'ghi');
    $ct = count($a);</pre>
<h4>排列列举参照</h4>
<ul>
<li>如果有如下阵列。<br />
$a = array(&#8216;abc&#8217;, &#8216;def&#8217;, &#8216;ghi&#8217;);</li>
<li>在PHP3是使用代码reset、while、each重置。<br />
$tmp [0]是下标字符，$tmp [1] 是实际数据。</li>
</ul>
<pre class="pre1">    reset($a);
    while ($tmp = each($a)) {
    print "&lt;P&gt;$tmp[0] - $tmp[1]&lt;/P&gt;\n";
    }</pre>
<h4>数组排序（升序）</h4>
<ul>
<li>使用sort将数组按升序排序。</li>
</ul>
<pre class="pre1">    $a = array('abc', 'def', 'ghi')
    sort($a); 

    foreach ($a as $tmp) {
    print "&lt;P&gt;$tmp&lt;/P&gt;\n";
    }</pre>
<h4>数组排序（降序）</h4>
<ul>
<li>使用rsort将数组按降序排序。</li>
</ul>
<pre class="pre1">
    $a = array('abc', 'def', 'ghi');
    rsort($a); 

    foreach ($a as $tmp) {
    print &quot;&lt;P&gt;$tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>关联数组排序（升序）</h4>
<ul>
<li>使用asort将数组按升序排序。</li>
</ul>
<pre class="pre1">
	$a = array('key1' =&gt; 'abc', 'key2' =&gt; 'def', 'key3' =&gt; 'ghi');
    asort($a); 

    foreach ($a as $key =&gt; $tmp) {
    print &quot;&lt;P&gt;$key - $tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>关联数组排序（降序）</h4>
<ul>
<li>使用arsort将数组按升序排序。</li>
</ul>
<pre class="pre1">
    $a = array('key1' =&gt; 'abc', 'key2' =&gt; 'def', 'key3' =&gt; 'ghi');
    arsort($a); 

    foreach ($a as $key =&gt; $tmp) {
    print &quot;&lt;P&gt;$key - $tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>关联数组键名排序（升序）</h4>
<ul>
<li>使用ksort将数组按键名升序排序。 </li>
</ul>
<pre class="pre1">
    $a = array('key1' =&gt; 'abc', 'key2' =&gt; 'def', 'key3' =&gt; 'ghi');
    ksort($a); 

    foreach ($a as $key =&gt; $tmp) {
    print &quot;&lt;P&gt;$key - $tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>关联数组键名排序（降序）</h4>
<ul>
<li>使用krsort将数组按键名降序排序。</li>
</ul>
<pre class="pre1">
	$a = array('key1' =&gt; 'abc', 'key2' =&gt; 'def', 'key3' =&gt; 'ghi');
    krsort($a); 

    foreach ($a as $key =&gt; $tmp) {
    print &quot;&lt;P&gt;$key - $tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>数组尾部添加</h4>
<ul>
<li>数组尾部使用array_push添加元素。<br />
    可以指定多个数据。<br />
    在PHP4中有这样的功能。
  </li>
</ul>
<pre class="pre1">
    $a = array('abc', 'def', 'ghi'); 

    array_push($a, 'data1', 'data2'); 

    foreach ($a as $tmp) {
    print &quot;&lt;P&gt;$tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>数组尾部删除</h4>
<ul>
<li>数组尾部使用array_pop删除元素。<br />
    可以指定多个数据。<br />
    在PHP4中有这样的功能。</li>
</ul>
<pre class="pre1">
    $a = array('abc', 'def', 'ghi'); 

    array_pop($a, 'data1', 'data2'); 

    foreach ($a as $tmp) {
    print &quot;&lt;P&gt;$tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>数组首部添加</h4>
<ul>
<li>数组首部使用array_unshift添加元素。<br />
    可以指定多个数据。<br />
    在PHP4中有这样的功能。</li>
</ul>
<pre class="pre1">
    $a = array('abc', 'def', 'ghi');

    array_unshift($a, 'data1', 'data2');

    foreach ($a as $tmp) {
    print &quot;&lt;P&gt;$tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>数组首部删除</h4>
<ul>
<li>数组首部使用array_shift删除元素。<br />
    可以指定多个数据。<br />
    在PHP4中有这样的功能</li>
</ul>
<pre class="pre1">
    $a = array('abc', 'def', 'ghi');

    array_shift($a);

    foreach ($a as $tmp) {
    print &quot;&lt;P&gt;$tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
<h4>数组连结</h4>
<ul>
<li>数组连结使用array_merge。<br />
    在PHP4中有这样的功能。</li>
</ul>
<pre class="pre1">
    $a = array('abc', 'def', 'ghi');
    $b = array('123', '456', '789');

    $a = array_merge($a, $b);

    foreach ($a as $tmp) {
    print &quot;&lt;P&gt;$tmp&lt;/P&gt;\n&quot;;
    }
	</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/php/97.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP基础篇7</title>
		<link>http://www.sophie-php.com/php/87.html</link>
		<comments>http://www.sophie-php.com/php/87.html#comments</comments>
		<pubDate>Tue, 03 May 2011 09:00:29 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP基础篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=87</guid>
		<description><![CDATA[表格请求、查询请求、cookie  setcookie]]></description>
			<content:encoded><![CDATA[<h3>表格请求、查询请求、cookie  setcookie</h3>
<h4>表格请求</h4>
<p>PHP中的表格请求很简单。<br />
  作为被name指定的名称前加上了$的变数而通过。<br />
  要接收一个数组，name=&quot;variable[0]&quot;这样的单纯指定。<br />
  进而,字符代码的转换也是没有必要的。</p>
<p>当您运行test.php的下面的代码，测试工作进行了表格请求。<br />
一旦数据被输入、就会以&lt;?=$a ?&gt;为表格的初始值。</p>
<pre class="pre1">
&lt;?php
  /*
  ========================================================================
  表格请求测试 test.php
  ========================================================================
  */
  // 准备
  $pgmname = 'test.php';
  ?&gt;
  &lt;HTML&gt;
  &lt;HEAD&gt;
  &lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=Shift_JIS&quot;&gt;
  &lt;TITLE&gt;表格请求测试&lt;/TITLE&gt;
  &lt;/HEAD&gt;
  &lt;BODY&gt;
  &lt;P align=&quot;center&quot;&gt;▼ 表格请求测试 ▼&lt;/P&gt;
  &lt;HR&gt;
  &lt;DIV&gt;
  &lt;FORM action=&quot;&lt;?= $pgmname ?&gt;?c=cdata&quot;
  id=&quot;FORM1&quot; method=&quot;post&quot; NAME=&quot;FORM1&quot;&gt;
  &lt;TABLE border=1 cellPadding=3 cellSpacing=1&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;FONT size=&quot;-1&quot;&gt;参数 a&lt;/FONT&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=&quot;a&quot; NAME=&quot;a&quot; type=&quot;text&quot; size=&quot;42&quot; maxlength=&quot;40&quot; 
  value=&quot;&lt;?= $a ?&gt;&quot;&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;FONT size=&quot;-1&quot;&gt;参数 b[0]&lt;/FONT&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=&quot;b0&quot; NAME=&quot;b[0]&quot; type=&quot;text&quot; size=&quot;42&quot; maxlength=&quot;40&quot; 
  value=&quot;&lt;?= $b[0] ?&gt;&quot;&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;FONT size=&quot;-1&quot;&gt;パラメタ b[1]&lt;/FONT&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=&quot;b1&quot; NAME=&quot;b[1]&quot; type=&quot;text&quot; size=&quot;42&quot; maxlength=&quot;40&quot;
  value=&quot;&lt;?= $b[1] ?&gt;&quot;&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
  &lt;/TABLE&gt;
  &lt;BR&gt;
  &lt;TABLE border=1 cellPadding=3 cellSpacing=1&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=submit1 NAME=submit1 type=submit value=&quot; 执行 &quot;&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=reset1 NAME=reset1 type=reset value=&quot;复位&quot;&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
  &lt;/TABLE&gt;
  &lt;/FORM&gt;
  &lt;?php
  // 请求取得处理
  if ($a != '' || $b[0] != '' || $b[1] != '') {

print &lt;&lt;&lt; END_OF_HTML
  &lt;P&gt;\$a = $a&lt;/P&gt;
  &lt;P&gt;\$b[0] = $b[0]&lt;/P&gt;
  &lt;P&gt;\$b[1] = $b[1]&lt;/P&gt;
  &lt;P&gt;\$c = $c&lt;/P&gt;
  END_OF_HTML;

 }
  else {
  ?&gt;
  &lt;P&gt;请输入数据。&lt;/P&gt;
  &lt;?php
  }
  ?&gt;
  &lt;/DIV&gt;
  &lt;HR&gt;
  &lt;/BODY&gt;
  &lt;/HTML&gt;
</pre>
<h5>查询请求</h5>
<p>与QUERY_STRING相似,查询请求的取得也和FORM一样简单。<br />
  在所指定的查询识别名名称前加入$这个参数通过。<br />
  通过排列获取是指像?variable[0]= 这样的单纯指定。</p>
<p>在QUERY_STRING中过滤英文数字以外的情况、使用urlencode 。<br />
$para1 = urlencode($para1);</p>
<p>运行test.php的下面的代码，测试工作进行了表格请求。</p>
<pre class="pre1">
&lt;?php
  /*
  ========================================================================
 查询请求测试 test2.php
  ========================================================================
  */
  ?&gt;
  &lt;HTML&gt;
  &lt;HEAD&gt;
  &lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=Shift_JIS&quot;&gt;
  &lt;TITLE&gt;查询请求测试&lt;/TITLE&gt;
  &lt;/HEAD&gt;
  &lt;BODY&gt;
  &lt;P align=&quot;center&quot;&gt;▼ 查询请求测试 ▼&lt;/P&gt;
  &lt;HR&gt;
  &lt;DIV&gt;
  &lt;?php
  // 请求取得处理
  if ($a != '' || $b[0] != '' || $b[1] != '') {

print &lt;&lt;&lt; END_OF_HTML
  &lt;P&gt;\$a = $a&lt;/P&gt;
  &lt;P&gt;\$b[0] = $b[0]&lt;/P&gt;
  &lt;P&gt;\$b[1] = $b[1]&lt;/P&gt;
  END_OF_HTML;

 }
  else {
  ?&gt;
  &lt;P&gt;无数据。&lt;/P&gt;
  &lt;?php
  }
  ?&gt;
  &lt;/DIV&gt;
  &lt;HR&gt;
  &lt;/BODY&gt;
  &lt;/HTML&gt;
</pre>
<h5>终端数据 Cookie</h5>
<p>PHP中，Cookie的写入和取得实际上很简单。<br />
关于Cookie的写入，作为HTML的META也有写的方法，不过在这里，用PHP编码setcookie输入出。<br />
再者、setcookie 、在HTML反映的最初执行是有必要的。</p>
<p>Cookie的取得是指、在Cookie的名称前附加$这个变量而取得。<br />
  因为cookie是在请求header上存在，setcookie紧接之后被变量设定，是被请求时的价值。<br />
  第一回当然是空的。<br />
  如有费解时、首先处理$cookiename、<br />
$cookiename = &#8216;data&#8217;;    <br />
setcookie(&#8216;cookiename&#8217;, $cookiename, time() + 60);    <br />
这样的话就好了。</p>
<p>test3.php下面的代码来运行测试做Cookie。 Cookie的到期日期为60秒。</p>
<p>[追记]<br />
下一次test3.php不起作用。<br />
其中插入<br />
$cookiename=$_COOKIE[&quot;cookiename&quot;];<br />
的时候好像可以起作用。（谢谢你的信息）</p>
<pre class="pre1">

&lt;?php
  /*
  ========================================================================
 Cookie测试 test3.php
  ========================================================================
  */
  // Cookie输出
  setcookie('cookiename', 'data', time() + 60);
  ?&gt;
  &lt;HTML&gt;
  &lt;HEAD&gt;
  &lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=Shift_JIS&quot;&gt;
  &lt;TITLE&gt;Cookie测试&lt;/TITLE&gt;
  &lt;/HEAD&gt;
  &lt;BODY&gt;
  &lt;P align=&quot;center&quot;&gt;▼ Cookie测试 ▼&lt;/P&gt;
  &lt;HR&gt;
  &lt;DIV&gt;
  &lt;?php
  // 请求取得处理
  if ($cookiename != '') {

  print &lt;&lt;&lt; END_OF_HTML
  &lt;P&gt;\$cookiename = $cookiename&lt;/P&gt;
  END_OF_HTML;

 }
  else {
  ?&gt;
  &lt;P&gt;无Cookie数据。&lt;/P&gt;
  &lt;P&gt;60秒內再次加载数据的话,读取写入的Cookie。&lt;/P&gt;
  &lt;?php
  }
  ?&gt;
  &lt;/DIV&gt;
  &lt;HR&gt;
  &lt;/BODY&gt;
  &lt;/HTML&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/php/87.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP基础篇6</title>
		<link>http://www.sophie-php.com/php/75.html</link>
		<comments>http://www.sophie-php.com/php/75.html#comments</comments>
		<pubDate>Fri, 22 Apr 2011 07:16:02 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP基础篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=75</guid>
		<description><![CDATA[数值函数、其它 rand、floor、ceil、round、$REMOTE_ADDR]]></description>
			<content:encoded><![CDATA[<h3>数值函数、其它 rand、floor、ceil、round、$REMOTE_ADDR</h3>
<h4>数值函数</h4>
<table width="100%">
<tbody>
<tr>
<td width="100">srand</td>
<td>随机数初始化</td>
</tr>
<tr>
<td>rand</td>
<td>随机数发生</td>
</tr>
<tr>
<td>floor</td>
<td>截取整数化</td>
</tr>
<tr>
<td>ceil</td>
<td>函数向上舍入为最接近的整数</td>
</tr>
<tr>
<td>round</td>
<td><span class="pre1">函数对浮点数进行四舍五入</span></td>
</tr>
<tr>
<td>sqrt</td>
<td>平方根</td>
</tr>
</tbody>
</table>
<h5>srand （随机数初始化）</h5>
<pre class="pre1">srand(time);</pre>
<p>** 用当前时间初始化随机数生成器。</p>
<h5>rand (随机数发生)</h5>
<p>【例】</p>
<pre class="pre1">$i = rand(0, 99);
<span style="color: #888888;">            |  |_ 上限值</span>
<span style="color: #888888;">            |_ 下限值</span></pre>
<p>** $i 被设置成0 ～ 99的随机数。</p>
<h5>floor (截取整数化)</h5>
<p>【例】</p>
<pre class="pre1">$i = floor(1.9);</pre>
<p>** $i 被设置成1。</p>
<h5>ceil (函数向上舍入为最接近的整数)</h5>
<p>【例】</p>
<pre class="pre1">$i = ceil(1.1);</pre>
<p>** $i 被设置成2。</p>
<h5>round (<span class="pre1">函数对浮点数进行四舍五入</span>)</h5>
<p>【例】</p>
<pre class="pre1">$i = round(1.5[, 2]);
<span style="color: #888888;">           |     |_ 规定小数点后的位数</span>
<span style="color: #888888;">           |_ 数值</span>

$i = round(1.5);</pre>
<p>** $i 被设置成2。</p>
<pre class="pre1">$i = round(1.123, 2);</pre>
<p>** $i 被设置成1.12。</p>
<h5>sqrt (平方根)</h5>
<p>【例】</p>
<pre class="pre1">$i = sqrt(2);</pre>
<p>** $i 被设置成1.14。</p>
<h4>其它函数</h4>
<table width="100%">
<tbody>
<tr>
<td width="100">chmod</td>
<td>设置权限</td>
</tr>
<tr>
<td>sleep</td>
<td>指定延迟秒数</td>
</tr>
</tbody>
</table>
<h5>chmod (设置权限)</h5>
<p>【例】</p>
<pre class="pre1">chmod("path/filename", 0666);</pre>
<p>** 权限设定。</p>
<h5>sleep (指定延迟秒数)</h5>
<p>【例】</p>
<pre class="pre1">sleep(10);</pre>
<p>** 10秒內停止执行PHP。(停止任意的时间执行)</p>
<h4>环境变量</h4>
<table width="100%">
<tbody>
<tr>
<td width="160">__LINE__</td>
<td>执行行号码</td>
</tr>
<tr>
<td>PHP_VERSION</td>
<td>PHP版本</td>
</tr>
<tr>
<td>PHP_OS</td>
<td>PHP系统</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>$DOCUMENT_ROOT</td>
<td>Web根目录</td>
</tr>
<tr>
<td>$SCRIPT_FILENAME</td>
<td>当前PHP的物理路径情报</td>
</tr>
<tr>
<td>__FILE__</td>
<td>当前PHP的物理路径情报</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>$REMOTE_ADDR</td>
<td>远程终端的IP地址</td>
</tr>
<tr>
<td>$HTTP_REFERER</td>
<td>运程终端之前的URL</td>
</tr>
<tr>
<td>$HTTP_USER_AGENT</td>
<td>浏览器信息</td>
</tr>
<tr>
<td>$SCRIPT_NAME</td>
<td>当前PHP的路径情报</td>
</tr>
<tr>
<td>$PHP_SELF</td>
<td>当前PHP的路径情报</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td>$SERVER_NAME</td>
<td>服务器主机名</td>
</tr>
<tr>
<td>$SERVER_SOFTWARE</td>
<td>软件的名称和网络版本</td>
</tr>
<tr>
<td>$GATEWAY_INTERFACE</td>
<td>Web服务器的CGI版本</td>
</tr>
</tbody>
</table>
<h4>图像反映</h4>
<pre class="pre1">&lt;?php
  // 准备
  $imgfile = 'sakstreets.gif';
  $imgtype = 'gif';

// 获取图像
  if (!($fno = fopen($imgfile, 'rb'))) {
  die;
  }
  $size = filesize($imgfile);
  $img = fread($fno, $size);
  fclose($fno);

// 图像表示
header("Content-type: image/$imgtype");
print $img;
?&gt;</pre>
<p>** fopen(&#8220;php://stdout&#8221;, &#8216;wb&#8217;) 再试也没有很好的工作。</p>
<h4>重定向</h4>
<pre class="pre1">header("Location: path/filename");
            |_ http://sak-main/test.htm
                       ./w_test/test.php
                       a001.php?p1=a</pre>
<p>** 其他的 HTML，PHP重定向。</p>
<h4>会话管理</h4>
<p>** PHP有着可以与ASP的会话管理同等的用法的会话管理。为在不同的页间的变量共享利用就好了。</p>
<table width="100%">
<tbody>
<tr>
<td width="220">session_start();</td>
<td>开始标记前</td>
</tr>
<tr>
<td>session_register(&#8220;ses1&#8243;, &#8220;ses2&#8243;);</td>
<td>注册会话变量</td>
</tr>
<tr>
<td>action=&#8221;sestest2.php?&lt;?= SID ?&gt;&#8221;</td>
<td>会话ID管理</td>
</tr>
</tbody>
</table>
<p>** SID ，PHP 的根据环境配置的不同即使不指定也做动作。</p>
<pre class="pre1">&lt;?php
/*
========================================================================
会话测试1
========================================================================
*/
// 准备
$pgmname = 'sestest1.php';

// 会话设置
  session_start();

// 会话变量
  session_register("ses1", "ses2");

// 要求数据取得
  $ses2 = $b;
  ?&gt;
  &lt;HTML&gt;
  &lt;HEAD&gt;
  &lt;META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"&gt;
  &lt;TITLE&gt;会话测试1&lt;/TITLE&gt;
  &lt;/HEAD&gt;
  &lt;BODY&gt;
  &lt;P align="center"&gt;▼ 会话测试1 ▼&lt;/P&gt;
  &lt;HR&gt;
  &lt;DIV&gt;
  &lt;FORM action="sestest2.php?&lt;?= SID ?&gt;" id="FORM1" method="post" NAME="FORM1"&gt;
  &lt;TABLE border=1 cellPadding=3 cellSpacing=1&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;FONT size="-1"&gt;参数 a&lt;/FONT&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id="a" NAME="a" type="text" size="42" maxlength="40"
value="&lt;?= $ses1 ?&gt;"&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
  &lt;/TABLE&gt;
  &lt;BR&gt;
  &lt;TABLE border=1 cellPadding=3 cellSpacing=1&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=submit1 NAME=submit1 type=submit value="  运行  "&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=reset1 NAME=reset1 type=reset value="复位"&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
  &lt;/TABLE&gt;
  &lt;/FORM&gt;
  &lt;P&gt;会话变量&lt;BR&gt;
  $ses1 = &lt;?= $ses1 ?&gt;&lt;BR&gt;
  $ses2 = &lt;?= $ses2 ?&gt;&lt;BR&gt;
  &lt;/P&gt;
  &lt;/DIV&gt;
  &lt;HR&gt;
  &lt;/BODY&gt;
  &lt;/HTML&gt;

&lt;?php
  /*
  ========================================================================
  会话测试2
  ========================================================================
  */
  // 准备
  $pgmname = 'sestest2.php';

// 会话设置
  session_start();

// 会话变量
  session_register("ses1", "ses2");

// 要求数据取得
  $ses1 = $a;
  ?&gt;
  &lt;HTML&gt;
  &lt;HEAD&gt;
  &lt;META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"&gt;
  &lt;TITLE&gt;会话测试2&lt;/TITLE&gt;
  &lt;/HEAD&gt;
  &lt;BODY&gt;
  &lt;P align="center"&gt;▼ 会话测试2 ▼&lt;/P&gt;
  &lt;HR&gt;
  &lt;DIV&gt;
  &lt;FORM action="sestest1.php?&lt;?= SID ?&gt;" id="FORM1" method="post" NAME="FORM1"&gt;
  &lt;TABLE border=1 cellPadding=3 cellSpacing=1&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;FONT size="-1"&gt;パラメタ b&lt;/FONT&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id="b" NAME="b" type="text" size="42" maxlength="40"
value="&lt;?= $ses2 ?&gt;"&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
  &lt;/TABLE&gt;
  &lt;BR&gt;
  &lt;TABLE border=1 cellPadding=3 cellSpacing=1&gt;
  &lt;TBODY&gt;
  &lt;TR&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=submit1 NAME=submit1 type=submit value="  运行  "&gt;&lt;/TD&gt;
  &lt;TD nowrap&gt;&lt;INPUT id=reset1 NAME=reset1 type=reset value="复位"&gt;&lt;/TD&gt;
  &lt;/TR&gt;
  &lt;/TBODY&gt;
  &lt;/TABLE&gt;
  &lt;/FORM&gt;
  &lt;P&gt;会话变量&lt;BR&gt;
  $ses1 = &lt;?= $ses1 ?&gt;&lt;BR&gt;
  $ses2 = &lt;?= $ses2 ?&gt;&lt;BR&gt;
  &lt;/P&gt;
  &lt;/DIV&gt;
  &lt;HR&gt;
  &lt;/BODY&gt;
  &lt;/HTML&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/php/75.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP基础篇5</title>
		<link>http://www.sophie-php.com/php/68.html</link>
		<comments>http://www.sophie-php.com/php/68.html#comments</comments>
		<pubDate>Mon, 18 Apr 2011 10:37:12 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP基础篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=68</guid>
		<description><![CDATA[字符串函数 substr、strlen、strpos、split、list、time、crypt]]></description>
			<content:encoded><![CDATA[<h3>字符串函数 substr、strlen、strpos、split、list、time、crypt</h3>
<h4>字符串运算符</h4>
<h5>文字列の結合</h5>
<pre class="pre1">【例】

$a = 'abc';

$b = 'def';

$c = $a . $b;

** 在$c里设置了'abcdef'。

$a = 'abc';

$a .= 'def';

** $a里设置了'abcdef'。
</pre>
<h4>字符串函数</h4>
<table width="100%">
<tbody>
<tr>
<td width="100">strtolower</td>
<td>转换成小文字</td>
</tr>
<tr>
<td>strtoupper</td>
<td>转换成大文字</td>
</tr>
<tr>
<td>substr</td>
<td>从第n项到n字节,阻断字符串</td>
</tr>
<tr>
<td>strlen</td>
<td>数有几个字节</td>
</tr>
<tr>
<td>strpos</td>
<td>查找所指定的字符串从第几行开始存在</td>
</tr>
<tr>
<td>strrpos</td>
<td>查找所指定的字符串存在于倒数第几行</td>
</tr>
<tr>
<td>sprintf</td>
<td>指定格式的变换</td>
</tr>
<tr>
<td>ltrim</td>
<td>消除左侧空白(\n、\r、\t也消除)</td>
</tr>
<tr>
<td>rtrim</td>
<td>消除右侧空白(\n、\r、\t也消除)</td>
</tr>
<tr>
<td>trim</td>
<td>消除左右空白(\n、\r、\t也消除)</td>
</tr>
<tr>
<td>htmlspecialchars</td>
<td>「&lt;」、「&gt;」、「&amp;」、「&#8221;」转换成记号文字</td>
</tr>
<tr>
<td>stripslashes</td>
<td>消除「\」</td>
</tr>
<tr>
<td>split</td>
<td>根据分离器分割字符串</td>
</tr>
<tr>
<td>list</td>
<td>代入阵列要素</td>
</tr>
<tr>
<td>time</td>
<td>当地时间</td>
</tr>
<tr>
<td>date</td>
<td>转换日期时间格式</td>
</tr>
<tr>
<td>crypt</td>
<td>字符串加密</td>
</tr>
</tbody>
</table>
<h4>PHP4日语字符串函数(mbstring 选项)</h4>
<table width="100%">
<tbody>
<tr>
<td width="100">mbsubstr</td>
<td>从第n项开始到第n字符阻断字符串</td>
</tr>
<tr>
<td>mbstrlen</td>
<td>数有几个字节</td>
</tr>
<tr>
<td>mbstrpos</td>
<td>查找指定的字符串村子从第几行开始</td>
</tr>
<tr>
<td>mbstrrpos</td>
<td>查找指定的字符串在倒数第几行</td>
</tr>
<tr>
<td>mbsplit</td>
<td>根据分割器分割字符串</td>
</tr>
</tbody>
</table>
<p>$jis = mb_convert_encoding($var, &#8220;JIS&#8221;, &#8220;SJIS&#8221;);</p>
<p>$euc = mb_convert_encoding($var, &#8220;EUC&#8221;, &#8220;SJIS&#8221;);</p>
<p>$str = mb_convert_kana($var, &#8216;AKHV&#8217;);</p>
<table width="100%">
<tbody>
<tr>
<td width="100">AKHV</td>
<td>r</td>
<td>全角英文转换成半角</td>
</tr>
<tr>
<td></td>
<td>R</td>
<td>半角英文转换成全角</td>
</tr>
<tr>
<td></td>
<td>n</td>
<td>全角数字转换成半角</td>
</tr>
<tr>
<td></td>
<td>N</td>
<td>半角数字转换成全角</td>
</tr>
<tr>
<td></td>
<td>a</td>
<td>全角字母数字转换成半角</td>
</tr>
<tr>
<td></td>
<td>A</td>
<td>半角字母数字转换成全角</td>
</tr>
<tr>
<td></td>
<td>s</td>
<td>全角空格转换成半角</td>
</tr>
<tr>
<td></td>
<td>S</td>
<td>半角空格转换成全角</td>
</tr>
<tr>
<td></td>
<td>k</td>
<td>全角片假名转换成半角</td>
</tr>
<tr>
<td></td>
<td>K</td>
<td>半角片假名转换成全角</td>
</tr>
<tr>
<td></td>
<td>h</td>
<td>全角平假名转换成半角</td>
</tr>
<tr>
<td></td>
<td>H</td>
<td>半角平假名转换成全角</td>
</tr>
<tr>
<td></td>
<td>c</td>
<td>全角片假名转换成全角平假名</td>
</tr>
<tr>
<td></td>
<td>C</td>
<td>全角平假名转换成全角片假名</td>
</tr>
<tr>
<td></td>
<td>V</td>
<td>浊音标志转换成一个文字的全角(和K、H一块儿使用)</td>
</tr>
</tbody>
</table>
<h4>strtolower (转换成小文字)</h4>
<p>【例】</p>
<pre class="pre1">$a = strtolower('ABC');
</pre>
<p>** $a被设置成&#8217;abc&#8217;。</p>
<h4>strtoupper (转换成大文字)</h4>
<p>【例】</p>
<pre class="pre1">$a = strtoupper('abc');
</pre>
<p>** $a被设置成&#8217;ABC&#8217;。</p>
<h4>substr (提取字符串)</h4>
<p>【例】</p>
<pre class="pre1">$a = substr('abcdef', 1, 3);
</pre>
<p>** $a被设置成&#8217;bcd&#8217;。</p>
<p>** 位置顶部是0、字符数是以字节为单位。</p>
<h4>strlen (字符串字节长)</h4>
<p>【例】</p>
<pre class="pre1">$i = strlen('abcdef');
</pre>
<p>** $a被设置成6。</p>
<p>** 长度是以字节为单位。</p>
<h4>strpos (字符串检索)</h4>
<p>【例】</p>
<pre class="pre1">$i = strpos('abcdef', 'bcd'[, 0]);
<span style="color: #888888;">                             |_ 检索开始位置省略的话 0</span></pre>
<p>** $i被设置成1。</p>
<p>** 检索结果位置开端是0。</p>
<h4>strrpos (字符串后方检索)</h4>
<p>【例】</p>
<pre class="pre1">$i = strrpos('abcdab', 'ab');</pre>
<p>** $i被设置成4。</p>
<p>** 检索结果位置开端是0。</p>
<h4>sprintf (字符串格式)</h4>
<p>【例】</p>
<pre class="pre1">$a = sprintf('a = %06d  b = %04d', 10, 20);</pre>
<p>** $i被设置成a = 000010 b = 0020。</p>
<p>** 格式符号是和C语言相同。</p>
<table width="100%">
<tbody>
<tr>
<td width="100">%b</td>
<td>2进制</td>
</tr>
<tr>
<td>%c</td>
<td>文字</td>
</tr>
<tr>
<td>%d</td>
<td>整数</td>
</tr>
<tr>
<td>%u</td>
<td>无符号整数</td>
</tr>
<tr>
<td>%f</td>
<td>浮点</td>
</tr>
<tr>
<td>%o</td>
<td>8进制</td>
</tr>
<tr>
<td>%s</td>
<td>字符串</td>
</tr>
<tr>
<td>%x</td>
<td>16进制小文字</td>
</tr>
<tr>
<td>%X</td>
<td>16进制大文字</td>
</tr>
</tbody>
</table>
<h4>ltrim (消除左侧空格)</h4>
<p>【例】</p>
<pre class="pre1">$a = ltrim("    abc");</pre>
<p>** $a被设置成&#8217;abc&#8217;。</p>
<p>** 注意无法消除全角空格。</p>
<p>** \n、\r、\t也被消除。</p>
<h4>rtrim (消除右侧空格)</h4>
<p>【例】</p>
<pre class="pre1">$a = rtrim("abc    \n");</pre>
<p>** $a被设置成&#8217;abc&#8217;。</p>
<p>** 注意无法消除全角空格。</p>
<p>** \n、\r、\t也被消除。</p>
<h4>trim (消除左右空格)</h4>
<p>【例】</p>
<pre class="pre1">$a = trim("    abc    \n");</pre>
<p>** $a被设置成&#8217;abc&#8217;。</p>
<p>** 注意无法消除全角空格。</p>
<p>** \n、\r、\t也被消除。</p>
<h4>htmlspecialchars (「&lt;」、「&gt;」、「&amp;」、「&#8221;」转换成记号文字)</h4>
<p>【例】</p>
<pre class="pre1">$a = htmlspecialchars('abc"def"&amp;');</pre>
<p>** $a被设置成&#8217;ａｂｃ＆ｌｔ；Ｐ＆ｇｔ；＆ｑｕｏｔ；ｄｅｆ＆ｑｕｏｔ；＆ａｍｐ；&#8217;(实际上是小写)。</p>
<h4>stripslashes (消除「\」)</h4>
<p>【例】</p>
<pre class="pre1">$a = stripslashes('\abc\def');</pre>
<p>** $a被设置成&#8217;abcdef&#8217;。</p>
<h4>split (根据分割器分割字符串,字符分割)</h4>
<p>【例】</p>
<pre class="pre1">$a = split(",", "abc,defg,hi");</pre>
<p>** 设置成$a[0] = &#8216;abc&#8217;、$a[1] = &#8216;defg&#8217;、$a[2] = &#8216;hi&#8217;。</p>
<h4>list (数组元素附值)</h4>
<p>【例】</p>
<pre class="pre1">$d[0] = 'abc';

$d[1] = 'defg';

$d[2] = 'hi';

list($a, $b, $c) = $d
</pre>
<p>** 设置成$a = &#8216;abc&#8217;、$b = &#8216;defg&#8217;、$c = &#8216;hi&#8217;。</p>
<h4>time (当地时间)</h4>
<h4>date (转换日期时间格式)</h4>
<p>【例】</p>
<pre class="pre1">$dttm = date('Y.m.d H:i:s', time());
</pre>
<p>** $dttm被设置成&#8217;2002.06.01 15:00:00&#8242;。(系统日期,系统时间,获取当前日期,获取当前时刻)</p>
<h4>crypt (字符串加密)</h4>
<p>【例】</p>
<pre class="pre1">  $s = crypt("abc012", "sk");
<span style="color: #888888;">  |           |         |_ 英文数字 2 字符的加密密匙</span>
<span style="color: #888888;">  |           |_ 通常字符串</span>
<span style="color: #888888;">  |_ 加密字符串</span></pre>
<p>** 没有复原到暗号化的函数。</p>
<p>因而密码的比较，用该加密钥匙密码化做输入密码，以加密状态比较。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/php/68.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP+MySQL篇4</title>
		<link>http://www.sophie-php.com/mysql/29.html</link>
		<comments>http://www.sophie-php.com/mysql/29.html#comments</comments>
		<pubDate>Wed, 13 Apr 2011 07:13:06 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP+MySQL篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=29</guid>
		<description><![CDATA[记录信息联系请求 mysql_query,mysql_fetch_array实例演示。]]></description>
			<content:encoded><![CDATA[<h3>记录信息联系请求 mysql_query,mysql_fetch_array</h3>
<h4>MySQL查询、记录查找</h4>
<p>MySQL查询，查询记录，你下。<br />
再者，因为错误处理，完全没进行不是现实的处理。</p>
<pre class="pre1">
&lt;?php
/*
========================================================================
MySQL 查询、记录查找测试 phpsql5.php
========================================================================
*/
?&gt;
&lt;HTML&gt;
&lt;HEAD&gt;
&lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=Shift_JIS&quot;&gt;
&lt;TITLE&gt;MySQL 查询、记录查找测试&lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;P align=&quot;center&quot;&gt;▼ MySQL 查询、记录查找测试 ▼&lt;/P&gt;
&lt;HR&gt;
&lt;DIV&gt;
&lt;?php
// MySQL 连接
  if (!($cn = mysql_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;&quot;))) {
      die;
	    }

// MySQL DB 选择
  if (!(mysql_select_db(&quot;sak&quot;))) {
  die;
  }

// MySQL 查询
  $sql = &quot;select * from test order by key1&quot;;
  if (!($rs = mysql_query($sql))) {
  die;
  }
  print '参照件数= ' . mysql_num_rows($rs) . '&lt;BR&gt;';

// MySQL 记录参照开始
  $init = True;
  while ($item = mysql_fetch_array($rs)) {

 // MySQL 标题处理开始
  if ($init) {

 // MySQL 记录项目数参照
  $clct = count($item) &gt;&gt; 1;
  print &quot;记录项目数= $clct&lt;BR&gt;&quot;;

 // MySQL 项目名参照
  print '=================================&lt;BR&gt;';
  print '|';
  reset($item);
  for ($i = 0; $i &lt; $clct; $i++) {
  $tmp = each($item);  // 虚拟索引跳跃键
  $tmp = each($item);
  list($mds, $dmy) = $tmp;
  print &quot; $mds |&quot;;
  }
  print '&lt;BR&gt;';
  print '=================================&lt;BR&gt;';

 // MySQL 标题处理结束
  $init = False;
  }

 // MySQL 项目数据参照
  print '|';
  for ($i = 0; $i &lt; $clct; $i++) {
  print &quot; $item[$i] |&quot;;
  }
  print '&lt;BR&gt;';

// MySQL 记录参照结束
  print '=================================&lt;BR&gt;';
  }

// MySQL 切断
  mysql_close($cn);

// 正常结束
  print &quot;&lt;P&gt;正常结束&lt;/P&gt;&quot;;
  ?&gt;
&lt;/DIV&gt;
&lt;HR&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/mysql/29.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP+MySQL篇3</title>
		<link>http://www.sophie-php.com/mysql/23.html</link>
		<comments>http://www.sophie-php.com/mysql/23.html#comments</comments>
		<pubDate>Wed, 13 Apr 2011 05:54:20 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP+MySQL篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=23</guid>
		<description><![CDATA[记录更新、添加、更新、删除、mysql_affected_rows实例演示。]]></description>
			<content:encoded><![CDATA[<h3>记录更新、添加、更新、删除、mysql_affected_rows</h3>
<h4>MySQL记录的追加、修改、记除</h4>
<p>MySQL记录的追加、修改、删除，如下做。 <br />
  再者，因为错误处理，完全没进行不是现实的处理。</p>
<p>变量项目中的「&#8217;」を或\&#8217;」、「&quot;」或「\&quot;」可以使用<br />
$s = addslashes($s); 来处理。</p>
<pre class="pre1">
&lt;?php
/*
========================================================================
MySQL 追加、修改、删除测试 phpsql3.php
========================================================================
*/
?&gt;
&lt;HTML&gt;
&lt;HEAD&gt;
&lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=Shift_JIS&quot;&gt;
&lt;TITLE&gt;MySQL 追加、修改、删除测试&lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;P align=&quot;center&quot;&gt;▼ MySQL 追加、修改、删除测试 ▼&lt;/P&gt;
&lt;HR&gt;
&lt;DIV&gt;
&lt;?php
// MySQL 连接
  if (!($cn = mysql_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;&quot;))) {
      die;  }

// MySQL DB 选择
  if (!(mysql_select_db(&quot;sak&quot;))) {
  die;
  }

// MySQL 开始执行
  $sql = &quot;begin&quot;;
  if (!(mysql_query($sql))) {
  die;
  }

// MySQL 记录删除
  $sql = &quot;delete from test where key1 like 'z%'&quot;;
  if (!(mysql_query($sql))) {
  die;
  }
  print '初期削除件数= ' . mysql_affected_rows() . '&lt;BR&gt;';

// MySQL 事物提交
  $sql = &quot;commit&quot;;
  if (!(mysql_query($sql))) {
  die;
  }

// MySQL 开始执行
  $sql = &quot;begin&quot;;
  if (!(mysql_query($sql))) {
  die;
  }

// MySQL 记录追加
  $sql = &quot;insert into test values('z001', 10, 20, 30)&quot;;
  if (!(mysql_query($sql))) {
  die;
  }
  print '追加件数= ' . mysql_affected_rows() . '&lt;BR&gt;';
  $sql = &quot;insert into test values('z002', 11, 22, 33)&quot;;
  if (!(mysql_query($sql))) {
  die;
  }
  print '追加件数= ' . mysql_affected_rows() . '&lt;BR&gt;';
  $sql = &quot;insert into test values('z003', 111, 222, 333)&quot;;
  if (!(mysql_query($sql))) {
  die;
  }
  print '追加件数= ' . mysql_affected_rows() . '&lt;BR&gt;';

// MySQL 记录修改
  $sql = &quot;update test set data2 = 222 where key1 = 'z001'&quot;;
  if (!(mysql_query($sql))) {
  die;
  }
  print '修正件数= ' . mysql_affected_rows() . '&lt;BR&gt;';

// MySQL 记录删除
  $sql = &quot;delete from test where key1 = 'z003'&quot;;
  if (!(mysql_query($sql))) {
  die;
  }
  print '削除件数= ' . mysql_affected_rows() . '&lt;BR&gt;';

/*
  // MySQL 事务回传
  $sql = &quot;rollback&quot;;
  if (!(mysql_query($sql))) {
  die;
  }
  */

// MySQL 事物提交
  $sql = &quot;commit&quot;;
  if (!(mysql_query($sql))) {
  die;
  }

// MySQL 查询
  $sql = &quot;select * from test order by key1&quot;;
  if (!($rs = mysql_query($sql))) {
  die;
  }
  print '照会件数= ' . mysql_num_rows($rs) . '&lt;BR&gt;';

// MySQL 参考记录
  while ($item = mysql_fetch_array($rs)) {
  print &quot;${item['key1']} &quot;;
  print &quot;${item['data1']} &quot;;
  print &quot;${item['data2']} &quot;;
  print &quot;${item['data3']}&lt;BR&gt;&quot;;
  }

// MySQL 切断
  mysql_close($cn);

// 正常结束
  print &quot;&lt;P&gt;正常结束&lt;/P&gt;&quot;;
?&gt;
&lt;/DIV&gt;
&lt;HR&gt;
&lt;/BODY&gt;
&lt;/HTML&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/mysql/23.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP+MySQL篇2</title>
		<link>http://www.sophie-php.com/mysql/21.html</link>
		<comments>http://www.sophie-php.com/mysql/21.html#comments</comments>
		<pubDate>Fri, 08 Apr 2011 09:21:54 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP+MySQL篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=21</guid>
		<description><![CDATA[RDBMS连接、登录、mysql_connect、mysql_select_db实例演示。]]></description>
			<content:encoded><![CDATA[<h3>RDBMS连接、登录、mysql_connect、mysql_select_db</h3>
<h4>MySQL连接</h4>
<p>MySQL的连接，如下做。 <br />
再者，因为错误处理，完全没进行不是现实的处理。</p>
<pre class="pre1">

&lt;?php
  /*
  ========================================================================
  MySQL 连接测试 phpsql1.php
  ========================================================================
  */
  ?&gt;
  &lt;HTML&gt;
  &lt;HEAD&gt;
  &lt;META http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=Shift_JIS&quot;&gt;
  &lt;TITLE&gt;MySQL 连接测试&lt;/TITLE&gt;
  &lt;/HEAD&gt;
  &lt;BODY&gt;
  &lt;P align=&quot;center&quot;&gt;▼ 连接测试 ▼&lt;/P&gt;
  &lt;HR&gt;
  &lt;DIV&gt;
  &lt;?php
  // MySQL 连接
  if (!($cn = mysql_connect(&quot;localhost&quot;, &quot;root&quot;, &quot;&quot;))) {
  die;
  }

// MySQL DB 选择
  if (!(mysql_select_db(&quot;sak&quot;))) {
  die;
  }

// MySQL 查询
  $sql = &quot;select * from test order by key1&quot;;
  if (!($rs = mysql_query($sql))) {
  die;
  }

// MySQL 参考记录
  while ($item = mysql_fetch_array($rs)) {
  print &quot;${item['key1']} &quot;;
  print &quot;${item['data1']} &quot;;
  print &quot;${item['data2']} &quot;;
  print &quot;${item['data3']}&lt;BR&gt;&quot;;
  }

// MySQL 切断
  mysql_close($cn);

// 正常结束
  print &quot;&lt;P&gt;正常结束&lt;/P&gt;&quot;;
  ?&gt;
  &lt;/DIV&gt;
  &lt;HR&gt;
  &lt;/BODY&gt;
  &lt;/HTML&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/mysql/21.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP+MySQL篇1</title>
		<link>http://www.sophie-php.com/mysql/19.html</link>
		<comments>http://www.sophie-php.com/mysql/19.html#comments</comments>
		<pubDate>Fri, 08 Apr 2011 09:17:11 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP+MySQL篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=19</guid>
		<description><![CDATA[在PHP中，MySQL和PostgreSQL都是可用的。
以下简单地验证在两者的PHP的存取。
再者，需要注意的是这里的PostgreSQL代码实际上无法工作。
实际测试，SQL编程文档[编辑]在PostgreSQL做的事情。
关于PostgreSQL,请参考这里和那里,两边的资料。
MySQL是不断的实际操作的代码。
SQL程序设计资料的『MySQL 篇』有新的版本的MySQL资料。
最近的MySQL，增加交易功能ODBC、JDBC访问支持。]]></description>
			<content:encoded><![CDATA[<h3>项目类型，创建表，删除项目，限制查询次数</h3>
<p>在PHP中，MySQL和PostgreSQL都是可用的。<br />
以下简单地验证在两者的PHP的存取。<br />
再者，需要注意的是这里的PostgreSQL代码实际上无法工作。<br />
实际测试，SQL编程文档[编辑]在PostgreSQL做的事情。<br />
关于PostgreSQL,请参考这里和那里,两边的资料。<br />
MySQL是不断的实际操作的代码。<br />
SQL程序设计资料的『MySQL 篇』有新的版本的MySQL资料。<br />
最近的MySQL，增加交易功能ODBC、JDBC访问支持。</p>
<h4>创建数据库</h4>
<p>MySQL在http://localhost/phpMyAdmin/index.php资料库能制作。(无状态表)</p>
<h4>项目类型表(字段类型)</h4>
<h5>MySQL的字段类型</h5>
<table width="100%">
<tr>
<td width="150">int / integer</td>
<td>4字节整数</td>
</tr>
<tr>
<td>smailint</td>
<td>2字节整数</td>
</tr>
<tr>
<td>bigint</td>
<td>8字节整数</td>
</tr>
<tr>
<td>float</td>
<td>浮动小数点</td>
</tr>
<tr>
<td>double / real</td>
<td>倍精度浮动小数点</td>
</tr>
<tr>
<td>date</td>
<td>日期</td>
</tr>
<tr>
<td>time</td>
<td>时间</td>
</tr>
<tr>
<td>timestamp</td>
<td>日期时间</td>
</tr>
<tr>
<td>char(文字数)</td>
<td>固定长句字列(最大256个字)</td>
</tr>
<tr>
<td>varchar(文字数)</td>
<td>长句字可以改变的列(最大256个字)</td>
</tr>
<tr>
<td>text</td>
<td>大量字符串(最大6万5535个字)</td>
</tr>
<tr>
<td>mediumtext</td>
<td>大量字符串(最大167万7215个字)</td>
</tr>
<tr>
<td>largetext</td>
<td>大量字符串(最大42亿9496万7295个字)</td>
</tr>
<tr>
<td>blob</td>
<td>大量二进制(最大65535 bytes)</td>
</tr>
<tr>
<td>mediumblob</td>
<td>大量二进制(最大1677215 bytes)</td>
</tr>
<tr>
<td>largeblob</td>
<td>大量二进制(最大4294967295 bytes)</td>
</tr>
</table>
<h4>创建表</h4>
<pre class="pre1">create table test (
key1   char(8)  primary key,
data1  bigint,
data2  bigint,
data3  bigint
);</pre>
<ul>
<li>能在浏览器操纵关系型数据库管理系统是很好的事。 <br />
  可用性之外，我们已经在网络上良好的服务。</li>
<li>MySQL中，文字不能用作表名和字段名被使用，那样的做法是错误的。<br />
    另外,也不能用作保留字来指定项目的名称。<br />
    在UNIX服务器上，表名是大写字母或小写字母是有区别的。<br />
    项目名是大写字母小写字母没有区别。<br />
  创建一个表，但它可以是互动的，直接的，倾注到一个查询更容易。</li>
<li>SQL的句子结构其本身有项目型不同以及日语不能管理的问题，和Oracle大体上是等量。<br />
  最好参考SQL编程语言资料。</li>
</ul>
<h4>删除表</h4>
<pre class="pre1">drop table test;</pre>
<h4>项目删除</h4>
<pre class="pre1">alter table test drop data2;</pre>
<h4><span class="pre1">限制查询次数</span></h4>
<pre class="pre1">select * from test where key1 like 'a%' limit 0, 10;</pre>
<p>MySQL查询到指定的数量的限制<br />
限制0,10<br />
| |_检索数<br />
| _号码（首行=0）<br />
如果你指定。</p>
<h4>删除索引</h4>
<pre class="pre1">drop index ix_key on test;</pre>
<p>若要删除在MySQL索引，on指定的是一个表的名称。</p>
<h4>顺序项目(自动号码)</h4>
<p>在MySQL中，auto_increment的指定。</p>
<pre class="pre1">create table test (
keyno  auto_increment  primary key,
data1  bigint,
data2  bigint,
data3  bigint
);</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/mysql/19.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP基础篇4</title>
		<link>http://www.sophie-php.com/php/16.html</link>
		<comments>http://www.sophie-php.com/php/16.html#comments</comments>
		<pubDate>Fri, 08 Apr 2011 09:14:11 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP基础篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=16</guid>
		<description><![CDATA[基本事项、用户函数、function、return、global、static]]></description>
			<content:encoded><![CDATA[<h3>基本事项、用户函数、function、return、global、static</h3>
<h4>基本事项</h4>
<p>在结构上C、C++、JAVA、Perl大写字母和小写字母有严格的区别。</p>
<p>比如、$i和$I是两个不同的变量。</p>
<p>因此，请正确地记述函数的大写字母和小写字母。</p>
<p>定界符和Perl在结构上有些不同.</p>
<p>&lt;&lt; 和 &lt;&lt;&lt; 有3个必要。</p>
<p>print &lt;&lt;&lt; END_OF_HTML的末尾不要「;」。</p>
<p>最后 END_OF_HTML; 的末尾不要「;」。</p>
<pre class="pre1">print &lt;&lt;&lt; END_OF_HTML

&lt;P&gt;abcde&lt;/P&gt;

&lt;P&gt;fghijkl&lt;/P&gt;

END_OF_HTML;
</pre>
<p>有可能把定界符数代入变数里。</p>
<pre class="pre1">$msg = &lt;&lt;&lt; END_OF_HTML

&lt;P&gt;abcde&lt;/P&gt;

&lt;P&gt;fghijkl&lt;/P&gt;

END_OF_HTML;
</pre>
<p>参数和C语言相同是等值传递的标准。<br />
加上&amp;也能传递地址。</p>
<h4>用户函数</h4>
<pre class="pre1">function UserFunction($para1, $para2, ...)
{
  global $a;
  static $b;
  $c = 1;

  编码...
  return returncode;
}
</pre>
<p>**在return里可以送交返回值。</p>
<p>**向参数送交地址叫做UserFunction(&amp;$para1)。</p>
<p>**function UserFunction(&amp;$para1, &amp;$para2, &#8230;)也能在函数方面送交指定地址。</p>
<h4>示例代码验证</h4>
<pre class="pre1">&lt;HTML&gt;

&lt;?php

// 变量

  $a = 100;

  $b = 200;

  $c = 300;

  $d = 400;

// 函数调用

  $e = test($d);

// 变量内容表示

  print "&lt;P&gt;变量 \$a = $a&lt;/P&gt;\n";

  print "&lt;P&gt;变量 \$b = $b&lt;/P&gt;\n";

  print "&lt;P&gt;变量 \$c = $c&lt;/P&gt;\n";

  print "&lt;P&gt;变量 \$d = $d&lt;/P&gt;\n";

  print "&lt;P&gt;变量 \$e = $e&lt;/P&gt;\n";

/*

  ========================================================================

  测试函数

  ========================================================================

  */

  function test($p) {

 global $a;

  static $b;

  $c = 1;

 $a += 10;

  $b += 20;

  $c += 30;

  $p += 40;

 return(50);

}

?&gt;

&lt;/HTML&gt;
</pre>
<p>【执行结果】</p>
<p>变量 $a = 110</p>
<p>变量 $b = 200</p>
<p>变量 $c = 300</p>
<p>变量 $d = 400</p>
<p>变量 $e = 50</p>
<p>** $a 、用函数test() 、global $a;、宣布成为110。</p>
<p>** $b、$c、$d、函数在 test() 內变成其它事物、不会受到影响。</p>
<p>函数的考虑方法,全局函数的局部变量和共同概念的范围,是和VB概念相同的。</p>
<p>可以参考『VB 基础篇 (之五) 函数构造(sub、function)』。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/php/16.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP基础篇3</title>
		<link>http://www.sophie-php.com/php/14.html</link>
		<comments>http://www.sophie-php.com/php/14.html#comments</comments>
		<pubDate>Fri, 08 Apr 2011 09:13:22 +0000</pubDate>
		<dc:creator>staff</dc:creator>
				<category><![CDATA[PHP基础篇]]></category>

		<guid isPermaLink="false">http://www.sophie-php.com/?p=14</guid>
		<description><![CDATA[标准文件 I/O fopen、unlink、flock、file、opendir、readdir]]></description>
			<content:encoded><![CDATA[<h3>标准文件 I/O fopen、unlink、flock、file、opendir、readdir</h3>
<h4>fopen (文件公开)</h4>
<pre class="pre1">$fno = fopen("path/filename", 'r');
<span style="color: #808080;">  |           |                |_ r  只读</span>
<span style="color: #808080;">  |           |                   r+ 输入输出</span>
<span style="color: #808080;">  |           |                   w  写入专用</span>
<span style="color: #808080;">  |           |                   w+ 输入输出(覆盖)</span>
<span style="color: #808080;">  |           |                   a  追加输出</span>
<span style="color: #808080;">  |           |                   a+ 输入输出(追加输出)</span>
<span style="color: #808080;">  |           |_ 文件名</span>
<span style="color: #808080;">  |_ 文件处理</span>
<span style="color: #808080;">  Flase = 错误</span>
<span style="color: #808080;">}</span></pre>
<h4>fclose (关闭文件)</h4>
<pre class="pre1">fclose($fno);
         <span style="color: #888888;">|_文件处理</span></pre>
<p>想要关闭未被打开的文件处理的话,会产生错误,要注意</p>
<h4>unlink (删除)</h4>
<pre class="pre1">$rcd = unlink("path/filename");
<span style="color: #888888;">  |              |_文件名</span>
<span style="color: #888888;">  |_ True  = 正常</span>
<span style="color: #888888;">    False = 错误</span></pre>
<h4>file_exists (确认文件是否存在)</h4>
<pre class="pre1">$rcd = file_exists("path/filename");
<span style="color: #888888;">  |                   |_文件名</span>
<span style="color: #888888;">  |_ True  = 存在</span>
<span style="color: #888888;">     False = 不存在</span></pre>
<h4>filesize (文件尺寸)</h4>
<pre class="pre1">$size = filesize("path/filename");
<span style="color: #888888;">  |                |_文件名</span>
<span style="color: #888888;">  |_字节数</span></pre>
<h4>filemtime (文件时间标记)</h4>
<pre class="pre1">$time = filemtime("path/filename");
<span style="color: #888888;">  |                |_文件名</span>
<span style="color: #888888;">  |_ UNIX 时间标记</span>

$dttm = date('Y.m.d H:i:s', filemtime("path/filename"));
<span style="color: #888888;">  |             |_ 格式</span>
<span style="color: #888888;">  |_ '2002.06.01 15:00:00'</span></pre>
<h4>copy (文件复制)</h4>
<pre class="pre1">$rcd = copy("path/filename", "path2/filename2");
<span style="color: #888888;">  |            |                |_目标文件名</span>
<span style="color: #888888;">  |            |_源文件的名称</span>
<span style="color: #888888;">  |_ True  = 正常</span>
<span style="color: #888888;">     False = 错误</span></pre>
<h4>rename (改变文件名)</h4>
<pre class="pre1">$rcd = rename("path/filename", "path2/filename2");
<span style="color: #888888;">  |             |                 |_ 新文件名</span>
<span style="color: #888888;">  |             |_旧文件名</span>
<span style="color: #888888;">  |_ True  = 正常</span>
<span style="color: #888888;">     False = 错误</span></pre>
<h4>flock (文件锁定、独占控制)</h4>
<pre class="pre1">flock($fno, 2);
<span style="color: #888888;">        |   |_ 1 锁定读入共有 (在PHP4、有LOCK_SH 常数)</span>
<span style="color: #888888;">        |      2 锁定写入独占 (在PHP4、有LOCK_EX 常数)</span>
<span style="color: #888888;">        |      3 解除锁定　　 (在PHP4、有LOCK_UN常数)</span>
<span style="color: #888888;">        |_文件处理</span>

set_file_buffer($fno, 0);
<span style="color: #888888;">                      |_锁定文件使用时、</span>
<span style="color: #888888;">                        fwrite 的缓冲指定0防止误操作。</span></pre>
<h4>文本流I/O样例</h4>
<pre class="pre1">$rcd = rename("path/filename", "path2/filename2");
<span style="color: #888888;">  |             |                 |_ 新文件名</span>
<span style="color: #888888;">  |             |_旧文件名</span>
<span style="color: #888888;">  |_ True  = 正常</span>
<span style="color: #888888;">     False = 错误</span></pre>
<h4>flock (文件锁定、独占控制)</h4>
<p>【例1】输入</p>
<pre class="pre1">if (!($fno = fopen("test.txt", 'r'))) {
    die;
}
  while (!feof($fno)) {
    $rec = fgets($fno, 32000);
}
  fclose($fno);
</pre>
<p>【例2】输入</p>
<pre class="pre1">$rec = file("test.txt");

  reset($rec);
  while ($a = each($rec)) {
  print "

$a[0] - $a[1]

\n";
}
</pre>
<p>【例3】输入 foreach只能使用PHP4)</p>
<pre class="pre1">$rec = file("test.txt");

  foreach ($rec as $a) {
  print "

$a

\n";
  }
</pre>
<p>【例4】输入</p>
<pre class="pre1">if (!($fno = fopen("test.txt", 'w'))) {
    die;
}
  fwrite($fno, "aaaaa\n", 32000);
  fwrite($fno, "bbbbb\n", 32000);
  fclose($fno);
</pre>
<h4>opendir (打开目录)</h4>
<pre class="pre1">  $dir = opendir("path");
  |               |_目录
  |_ 文件处理
       Flase = 错误
</pre>
<h4>closedir (关闭目录)</h4>
<pre class="pre1">closedir($dir);
           |_文件处理</pre>
<h4>目录参照样例</h4>
<p>【例】</p>
<pre class="pre1">
if (!($dir = opendir("./"))) {
    die;
}
  while ($fnm = readdir($dir)) {
    print "

$fnm

\n";
}
  closedir($dir);
</pre>
<p>** 注意『.』和『..』也包括在内。</p>
<p>【例】只提取指定的扩展名</p>
<pre class="pre1">
if (!($dir = opendir("./"))) {
    die;
}
  while ($fnm = readdir($dir)) {
    if (ereg('.php$', $fnm)) {
    print "

$fnm

\n";
}
}
  closedir($dir);
</pre>
<p>【例】升序</p>
<pre class="pre1">
if (!($dir = opendir("./"))) {
    die;
}
  while ($fnm[] = readdir($dir));
  closedir($dir);
  sort($fnm);
  reset($fnm);
  while ($a = each($fnm)) {
  print "

$a[1]

\n";
 }
</pre>
<p>** 注意『.』和『..』也包括在内。</p>
<p>【例】降序</p>
<pre class="pre1">
if (!($dir = opendir("./"))) {
    die;
}
  while ($fnm[] = readdir($dir));
  closedir($dir);
  rsort($fnm);
  reset($fnm);
  while ($a = each($fnm)) {
  print "

$a[1]

\n";
}
</pre>
<p>** 注意『.』和『..』也包括在内。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sophie-php.com/php/14.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

