﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>PHP博客-My Labs! PHP-随笔分类-开始 / 简单指南 </title><link>http://www.phpweblog.net/Laeb/category/194.html</link><description>Work is Worth Doing of Worth Doing Well.</description><language>zh-cn</language><lastBuildDate>Mon, 26 Mar 2007 15:04:49 GMT</lastBuildDate><pubDate>Mon, 26 Mar 2007 15:04:49 GMT</pubDate><ttl>60</ttl><item><title>窗体处理</title><link>http://www.phpweblog.net/Laeb/archive/2007/03/26/1029.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Mon, 26 Mar 2007 10:18:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/03/26/1029.html</guid><wfw:comment>http://www.phpweblog.net/Laeb/comments/1029.html</wfw:comment><comments>http://www.phpweblog.net/Laeb/archive/2007/03/26/1029.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/Laeb/comments/commentRss/1029.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/Laeb/services/trackbacks/1029.html</trackback:ping><description><![CDATA[<p>PHP 最强大的一种特征就是它处理 HTML 窗体的方式。需要理解的重要基本概念就是任何窗体元素都将自动可用于你的 PHP 脚本。关于 PHP 使用窗体的更多信息与范例，请阅读手册部分［PHP 之外的变量］。这里是一个 HTML 窗体范例：</p><h5>一个简单的 HTML 窗体</h5><pre>&lt;form action="action.php" method="post"&gt;
 &lt;p&gt;Your name: &lt;input type="text" name="name" /&gt;&lt;/p&gt;
 &lt;p&gt;Your age: &lt;input type="text" name="age" /&gt;&lt;/p&gt;
 &lt;p&gt;&lt;input type="submit" /&gt;&lt;/p&gt;
&lt;/form&gt;</pre><p>没有任何关于这个窗体的特别之处。它是一个没有任何特殊标记的整齐的 HTML 窗体。当用户填充这个窗体并且点击提交按钮的时候，页面 action.php 就会被调用。在这个文件中你将编写这样一些内容：</p><h5>从我们的窗体中打印数据</h5><pre>Hi &lt;?php echo htmlspecialchars($_POST['name']); ?&gt;.
You are &lt;?php echo (int)$_POST['age']; ?&gt; years old.</pre><p>这个脚本的一个范例输出可能是：</p><pre>Hi Joe. You are 22 years old.</pre><p>从 htmlspecialchars() 与 (int) 部分分开，它做了什么应该很明显的。方法 htmlspecialchars() 确保任何 HTML 特殊字符适当地被编码，因此人们就无法把 HTML 标记或者 Javascript 注入到你的页面中。关于 age 字段，自从我们知道它是一个数字以来，我们只把它转换成一个整数，从而自动摆脱了任何偏离字符。你同样可以通过使用扩展名过滤来让 PHP 为你自动完成这些。变量 $_POST['name'] 与 $_POST['age'] 是 PHP 为你自动设置的。我们早期使用的是超级全局的 $_SERVER。在前面我们只引入了包含所有 POST 数据的 $_POST 超级全局。注意我们的窗体方法是怎样变成 POST 的。如果我们使用 GET 方法，那么我们的窗体信息将会出现在 $_GET 超级全局中。你同样可以使用 $_REQUEST 超级全局，如果你不关心你的请求数据来源的话。它包含了 GET，POST 以及 COOKIE 数据的被合并信息。同样参考［import_request_variables() 方法］。</p><p>你同样可以在 PHP 中处理 XForms 输入，虽然你将发现你自己有时候适合于被良好支持的 HTML 窗体。虽然操作 XForms 不太适合初学者，但是你可能会对它们感兴趣。在我们的特征部分中同样有一个［从 XForms 中处理数据的简短介绍］。</p><img src ="http://www.phpweblog.net/Laeb/aggbug/1029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-03-26 18:18 <a href="http://www.phpweblog.net/Laeb/archive/2007/03/26/1029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些有用的</title><link>http://www.phpweblog.net/Laeb/archive/2007/03/20/1010.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Tue, 20 Mar 2007 10:32:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/03/20/1010.html</guid><wfw:comment>http://www.phpweblog.net/Laeb/comments/1010.html</wfw:comment><comments>http://www.phpweblog.net/Laeb/archive/2007/03/20/1010.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/Laeb/comments/commentRss/1010.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/Laeb/services/trackbacks/1010.html</trackback:ping><description><![CDATA[<p>现在让我们做一些更有用的事。我们开始检查访问者使用的是哪种类型的浏览器。关于这个，我们检查用户浏览器当成 HTTP 请求的一部分而发送的代理字符串。该信息被存储在一个变量中。PHP 中的变量始终都以一个美元符号开始。我们感兴趣的正确变量现在是 $_SERVER['HTTP_USER_AGENT']。</p><p>提示：$_SERVER 是一种专门被保留的 PHP 变量，它们包含了所有的 Web 服务器信息。也就是所说的超级全局。关于更多信息，参考关于超级全局的手册页面。这些特殊变量在 PHP 4.1.0 中被引入。而这次，我们使用较旧的 $HTTP_*_VARS 数组来替代，比如 $HTTP_SERVER_VARS。虽然是不被赞成的，但是这些较旧的变量仍然存在。（同样参考旧代码的提示。）</p><p>要显示这个变量，你只需要：</p><h5>打印一个变量（数组元素）</h5><pre>&lt;?php
echo $_SERVER['HTTP_USER_AGENT'];
?&gt;</pre><p>该脚本的范例输出可能是：</p><pre>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)</pre><p>许多类型的变量在 PHP 中可用。在前面的范例中我们打印了一个 Array 元素。数组可以是非常有用的。</p><p>$_SERVER 只是 PHP 自动为你提供的一个变量。在手册的［被保留变量］部分可以看到一个列表，或者你可以查看以上范例中被使用的 phpinfo() 功能的输出来得到它们的完整列表。</p><p>你可以把多条 PHP 声明存放进一个 PHP 标签中并且创建可以比一个 echo 做更多事的小代码块。例如，如果你需要检查 Internet Explorer，你可以这样：</p><h5>使用控制结构和功能的范例</h5><pre>&lt;?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
    echo 'You are using Internet Explorer.&lt;br /&gt;';
}
?&gt; </pre><p>该脚本的一个简单输出可能是：</p><pre>You are using Internet Explorer.&lt;br /&gt;</pre><p>在这里我们引入了新的概念。我们有一条 if 声明。如果你熟悉由 C 语言所使用的基本语法，在你看来这应该是符合逻辑的。否则，你就或许应该获得 PHP 的介绍书籍并且阅读第一章，或者阅读手册的［语言参考］部分。你可以在 http://www.php.net/books.php 中找到 PHP 的书籍列表。</p><p>被我们引入的第二个概念就是 strpos() 功能调用。而 strpos() 是一个内建在 PHP 中的功能，用来在字符串中搜索其他的字符串。在这种情况下我们期待的是 $_SERVER['HTTP_USER_AGENT']（所谓的堆）中的 'MSIE'（所谓的指针）。如果指针在堆中被找到，那么该功能就返回相对于堆的开始的指针位置。否则，它返回 FALSE。如果它没有返回 FALSE，那么 if 表达式就是 TRUE 并且它的代码被执行。否则，代码不会运行。摸索创建任何类似的范例，以 if，else 和其他功能（比如 strtoupper() 和 strlen()）。每个相关的手册页面都包含了范例。如果你不能确定如何使用功能，你将需要同时阅读如何学习功能定义的手册页面和关于 PHP 功能的部分。</p><p>我们可以进一步获得这个步骤并且说明你怎样才可以从 PHP 模式中进出，甚至是在 PHP 块的中间：</p><h5>同时混合 HTML 与 PHP 模式</h5><pre>&lt;?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?&gt;
&lt;h3&gt;strpos() must have returned non-false&lt;/h3&gt;
&lt;p&gt;You are using Internet Explorer&lt;/p&gt;
&lt;?php
} else {
?&gt;
&lt;h3&gt;strpos() must have returned false&lt;/h3&gt;
&lt;p&gt;You are not using Internet Explorer&lt;/p&gt;
&lt;?php
}
?&gt; </pre><p>这个脚本的范例输出可能是：</p><pre>&lt;h3&gt;strpos() must have returned non-false&lt;/h3&gt;
&lt;p&gt;You are using Internet Explorer&lt;/p&gt;</pre><p>作为使用 PHP 中 echo 声明的替代就是输出内容，我们跳出 PHP 模式并且只发送一致的 HTML。这里需要注意的重点与需要强调就是脚本的逻辑流可以保持完整。只有 HTML 块才会结束发送到依赖于 strpos() 结果的查看器。换句话说，它依赖于字符串 MSIE 是否被找到。</p><img src ="http://www.phpweblog.net/Laeb/aggbug/1010.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-03-20 18:32 <a href="http://www.phpweblog.net/Laeb/archive/2007/03/20/1010.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以新版本的 PHP 来使用旧代码</title><link>http://www.phpweblog.net/Laeb/archive/2007/03/18/1008.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Sun, 18 Mar 2007 09:01:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/03/18/1008.html</guid><wfw:comment>http://www.phpweblog.net/Laeb/comments/1008.html</wfw:comment><comments>http://www.phpweblog.net/Laeb/archive/2007/03/18/1008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/Laeb/comments/commentRss/1008.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/Laeb/services/trackbacks/1008.html</trackback:ping><description><![CDATA[<p>现在 PHP 已经成长为一种流行的脚本语言，有大量的公开知识库和类库来包含你的可重用代码。PHP 的开发者努力在尝试来保持后向兼容，因此为旧版本所编写的脚本将会在较新版本的 PHP 中运行（完美地）。按照惯例，有一些变化通常是必需的。</p><p>影响旧代码的最近的两个最重要变化是：</p><ul><li>不赞成旧的 $HTTP_*_VARS 数组（当在功能或者方法的内部被使用的时候，它需要被指示成全局的）。下列超级全局数组在 PHP 4.1.0 中被引入。它们是：$_GET、$_POST、$_COOKIE、$_SERVER、$_FILES、$_ENV、$_REQUEST 和 $_SESSION。较旧的 $HTTP_*_VARS 数组，比如 $HTTP_POST_VARS，它们自从 PHP 3 以来始终仍然存在。作为 PHP 5.0.0，长的 PHP 预定义变量数组可能由 register_long_arrays 指令而被禁用。</li><li>外部变量在默认时不再被注册在全局范围内。换句话说，与 PHP 4.2.0 一样，PHP 指令 register_globals 默认时在 php.ini 中被关闭。访问这些值的首选方法就是通过前面所提到的超级全局数组。较旧的脚本，书籍和指南可能依赖于这个指令是开启的。如果它是开启的，例如，从 URL［http://www.example.com/foo.php?id=42］中使用 $id，不论是否开启或者关闭，$_GET['id'] 都是可用的。</li></ul><p>关于这些变化的更多详细内容，参考［预定义变量］部分和那里的链接。</p><img src ="http://www.phpweblog.net/Laeb/aggbug/1008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-03-18 17:01 <a href="http://www.phpweblog.net/Laeb/archive/2007/03/18/1008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>你的第一个启用了 PHP 的页面</title><link>http://www.phpweblog.net/Laeb/archive/2007/03/17/1007.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Sat, 17 Mar 2007 07:30:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/03/17/1007.html</guid><wfw:comment>http://www.phpweblog.net/Laeb/comments/1007.html</wfw:comment><comments>http://www.phpweblog.net/Laeb/archive/2007/03/17/1007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/Laeb/comments/commentRss/1007.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/Laeb/services/trackbacks/1007.html</trackback:ping><description><![CDATA[<p>创建一个名为 hello.php 的文件并且把它存放到你的 Web 服务器的根目录（DOCUMENT_ROOT），该文件的内容如下：</p><h5>范例：我们的第一个 PHP 脚本：hello.php</h5><pre>&lt;html&gt;
 &lt;head&gt;
  &lt;title&gt;PHP Test&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;?php echo '&lt;p&gt;Hello World&lt;/p&gt;'; ?&gt; 
 &lt;/body&gt;
&lt;/html&gt;</pre><p>使用你的浏览器以你的 Web 服务器的 URL 来访问该文件，以 "/hello.php" 文件引用作为结尾。当在本地开发的时候，这个 URL 将会像 http://localhost/hello.php 或者 http://127.0.0.1/hello.php，但是这依赖于 Web 服务器的配置。如果一切都配置正确，这个文件将被 PHP 解析并且下列输出将会发送到你的浏览器：</p><pre>&lt;html&gt;
 &lt;head&gt;
  &lt;title&gt;PHP Test&lt;/title&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;p&gt;Hello World&lt;/p&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre><p>这个程序非常简单并且你真正不需要使用 PHP 来创建这样的页面。所做的一切就是使用 PHP 的 echo() 声明来显示：Hello World。注意该文件不需要是可执行的或者是任何其他的特殊方式。服务器会找出这个文件需要被 PHP 解析，因为你使用了扩展名 ".php"，服务器的配置会把该扩展名传递给 PHP。把它想像成一个拥有特殊标记集合的常规 HTML 文件，你可以用这些标记做许多有趣的事情。</p><p>如果你测试了这个范例并且它没有输出任何东西，它会提示需要下载，或者你会看到文件中的所有文字，有可能是服务器没有启用 PHP 的原因，或者配置不正确。询问你的管理员使用该指南［安装］章节中的指导来为你启用它。如果你在本地开发，同样阅读安装章节来确保一切都被正确配置。确保你通过服务器提供的输出来访问 HTTP 文件。如果你只是从文件系统中调用该文件，那么它将不会被 PHP 解析。如果该问题仍然存在，不要担心使用若干 PHP 支持选项中的任何一种。</p><p>该范例的要点就是显示特殊的 PHP 标记格式。在这个范例中我们使用了 &lt;?php 来表示 PHP 标记的开始。然后我们使用了 PHP 声明并且添加结束标记 ?&gt; 来离开 PHP 模式。你可以在 HTML 的任何位置从 PHP 模式中自由进出。关于详细内容，阅读手册中的基本 PHP 语法部分。</p><ul><li><strong>换行的提示：</strong><span>HTML 中的换行有一点不同，但是使用换行仍然是让你的 HTML 看起来更美观并且更整洁的一个好主意。一个在结束标记 ?&gt; 之后的直接换行将被 PHP 删除。这在你使用多个 PHP 块或者包括包含不会输出任何内容的 PHP 文件的时候是非常有用的。同时它可能容易被混淆。你可以在结束标记 ?&gt; 之后使用一个空格来强制需要输出的空格和换行，或者你可以把一个明确的换行放在 PHP 块最后的 echo/print 方法中。</span></li><li><strong>文字编辑器的提示：</strong><span>你可以使用许多种文字编辑器和 Integrated Development Environments（IDE）来创建，编辑并且管理 PHP 文件。PHP Editors List 中维护着这些工具的部分列表。如果你想要推荐一种编辑器，请访问上页并且访问页面维护人员把编辑器添加到该列表中。拥有语法高亮的编辑器是有用的。</span></li><li><strong>字处理器的提示：</strong><span>字处理器（比如 StarOffice Writer，Microsoft Word 和 Abiword）并不适合编辑 PHP 文件。如果你想要使用其中的一种来测试脚本，你必须确保你把文件保存成了纯文本格式，否则 PHP 将无法读取和执行该脚本。</span></li><li><strong>Windows Notepad 的提示：</strong><span>如果你使用 Windows Notepad 编写你的 PHP 脚本，你将需要确保你的文件被保存为扩展名是 .php 的文件。（Notepad 会自动为文件添加扩展名 .txt，除非你采取下列步骤来防止它。）当你保存文件并且提示提供文件名的时候，把文件名放到双引号中（例如，"hello.php"）。作为选择，你可以点击 Save 对话框中的 Text Documents 下拉菜单并且把设置改成 All Files。然后你就可以不使用双引号来输入你的文件名。</span></li></ul><p>现在你已经完全创建了一个有效的 PHP 脚本，是时候创建最好的 PHP 脚本了！获取 phpinfo() 功能的一个调用并且你将看到关于你的系统和安装的大量有用信息，比如可用的预定义变量，已载入的 PHP 模块和配置设定等等。花一点时间回顾一下这些重要的信息。</p><h5>范例：获得 PHP 的系统信息</h5><pre>&lt;?php phpinfo(); ?&gt;</pre><img src ="http://www.phpweblog.net/Laeb/aggbug/1007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-03-17 15:30 <a href="http://www.phpweblog.net/Laeb/archive/2007/03/17/1007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我们需要什么</title><link>http://www.phpweblog.net/Laeb/archive/2007/03/16/996.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Fri, 16 Mar 2007 04:49:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/03/16/996.html</guid><wfw:comment>http://www.phpweblog.net/Laeb/comments/996.html</wfw:comment><comments>http://www.phpweblog.net/Laeb/archive/2007/03/16/996.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.phpweblog.net/Laeb/comments/commentRss/996.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/Laeb/services/trackbacks/996.html</trackback:ping><description><![CDATA[<p>在这个指南中我们假设你的服务器已经激活了 PHP 支持并且所有以 .php 作为名称结尾的文件都通过 PHP 而被处理。在多数服务器中，这是 PHP 文件的默认扩展名，但是需要询问你的服务器管理员才能够确定。如果你的服务器支持 PHP，那么你就不用做任何事情。只需要创建你的 .php 文件，把它们存放到你的 Web 目录中，然后服务器就会自动解析它们。这并不需要编译什么也不需要安装任何额外的工具。把这些启用了 PHP 的文件认为是拥有新标记家族的简单 HTML 文件，这些标记让你完成所有事情。多数 Web 主机都提供了 PHP 支持，但是如果你的主机不支持，考虑阅读寻找［启用了 PHP 的 Web 主机资源］的［PHP Links］部分。</p><p>我们认为你需要保存宝贵的带宽并且在本地进行开发。在这种情况下，你将需要安装一种 Web 服务器，比如 Apache，当然还有 PHP。你还有可能需要安装一种数据库，比如 MySQL。</p><p>你既可以单独地安装它们也可以选择一种更加简单的方式。我们的手册中有 PHP 的安装指导（假设你已经安装了 Web 服务器）。万一你在安装 PHP 的时候出现问题，我们会建议你把问题提交到我们关于安装的邮件列表中。如果你选择更简单的路线，可以寻找适用于你的操作系统的预配置包，从而只需要少量的鼠标点击就能够自动为你安装任何必需品。这种方式很容易就在任何操作系统的 Web 服务器中安装 PHP 支持，包括 MacOSX，Linux 和 Windows。在 Linux 中，你可能需要通过 rpmfind 和 PBone 的帮助来寻找 RPM。你同样可能需要访问 atp-get 来寻找 Debian 中的包。</p><img src ="http://www.phpweblog.net/Laeb/aggbug/996.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-03-16 12:49 <a href="http://www.phpweblog.net/Laeb/archive/2007/03/16/996.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>