原文:PHP 5:PHP语法导向
代码
1 <?php
2
3 function do_html_header($title)
4 {
5 // print an HTML header
6 ?>
7 <html>
8 <head>
9 <title><?php echo $title;?></title>
10 <style>
11 body { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
12 li, td { font-family: Arial, Helvetica, sans-serif; font-size: 13px }
13 hr { color: #3333cc; width=300; text-align=left}
14 a { color: #000000 }
15 </style>
16 </head>
17 <body>
18 <img src="bookmark.gif" alt="PHPbookmark logo" border=0
19 align=left valign=bottom height = 55 width = 57 />
20 <h1> PHPbookmark</h1>
21 <hr />
22 <?php
23 if($title)
24 do_html_heading($title);
25 }
26
27 function do_html_footer()
28 {
29 // print an HTML footer
30 ?>
31 </body>
32 </html>
33 <?php
34 }
35
36 function do_html_heading($heading)
37 {
38 // print heading
39 ?>
40 <h2><?php echo $heading;?></h2>
41 <?php
42 }
43
44 function do_html_URL($url, $name)
45 {
46 // output URL as link and br
47 ?>
48 <br /><a href="<?php echo $url;?>"><?php echo $name;?></a><br />
49 <?php
50 }
51
52 function display_site_info()
53 {
54 // display some marketing info
55 ?>
56 <ul>
57 <li>Store your bookmarks online with us!</li>
58 <li>See what other users use?</li>
59 <li>Share your favorite links with others?</li>
60 </ul>
61 <?php
62 }
63
64 function display_login_form()
65 {
66 ?>
67 <a href='register_form.php'>Not a member?</a>
68 <form method='post' action='member.php'>
69 <table bgcolor='#cccccc'>
70 <tr>
71 <td colspan=2>Members log in here?</td>
72 <tr>
73 <td>Username:</td>
74 <td><input type='text' name='username'></td></tr>
75 <tr>
76 <td>Password:</td>
77 <td><input type='password' name='passwd'></td></tr>
78 <tr>
79 <td colspan=2 align='center'>
80 <input type='submit' value='Log in'></td></tr>
81 <tr>
82 <td colspan=2><a href='forgot_form.php'>Forgot your password?</a></td>
83 </tr>
84 </table></form>
85 <?php
86 }
87
88 function display_registration_form()
89 {
90 ?>
91 <form method='post' action='register_new.php'>
92 <table bgcolor='#cccccc'>
93 <tr>
94 <td>Email address:</td>
95 <td><input type='text' name='email' size=30 maxlength=100></td></tr>
96 <tr>
97 <td>Preferred username <br />(max 16 chars):</td>
98 <td valign='top'><input type='text' name='username'
99 size=16 maxlength=16></td></tr>
100 <tr>
101 <td>Password <br />(between 6 and 16 chars):</td>
102 <td valign='top'><input type='password' name='passwd'
103 size=16 maxlength=16></td></tr>
104 <tr>
105 <td>Confirm password:</td>
106 <td><input type='password' name='passwd2' size=16 maxlength=16></td></tr>
107 <tr>
108 <td colspan=2 align='center'>
109 <input type='submit' value='Register'></td></tr>
110 </table></form>
111 <?php
112
113 }
114
115 function display_user_urls($url_array)
116 {
117 // display the table of URLs
118
119 // set global variable, so we can test later if this is on the page
120 global $bm_table;
121 $bm_table = true;
122 ?>
123 <br />
124 <form name='bm_table' action='delete_bms.php' method='post'>
125 <table width=300 cellpadding=2 cellspacing=0>
126 <?php
127 $color = "#cccccc";
128 echo "<tr bgcolor='$color'><td><strong>Bookmark</strong></td>";
129 echo "<td><strong>Delete?</strong></td></tr>";
130 if (is_array($url_array) && count($url_array)>0)
131 {
132 foreach ($url_array as $url)
133 {
134 if ($color == "#cccccc")
135 $color = "#ffffff";
136 else
137 $color = "#cccccc";
138 // remember to call htmlspecialchars() when we are displaying user data
139 echo "<tr bgcolor='$color'><td><a href=\"$url\">".htmlspecialchars($url)."</a></td>";
140 echo "<td><input type='checkbox' name=\"del_me[]\"
141 value=\"$url\"></td>";
142 echo "</tr>";
143 }
144 }
145 else
146 echo "<tr><td>No bookmarks on record</td></tr>";
147 ?>
148 </table>
149 </form>
150 <?php
151 }
152
153 function display_user_menu()
154 {
155 // display the menu options on this page
156 ?>
157 <hr />
158 <a href="member.php">Home</a> |
159 <a href="add_bm_form.php">Add BM</a> |
160 <?php
161 // only offer the delete option if bookmark table is on this page
162 global $bm_table;
163 if($bm_table==true)
164 echo "<a href='#' onClick='bm_table.submit();'>Delete BM</a> | ";
165 else
166 echo "<font color='#cccccc'>Delete BM</font> | ";
167 ?>
168 <a href="change_passwd_form.php">Change password</a>
169 <br />
170 <a href="recommend.php">Recommend URLs to me</a> |
171 <a href="logout.php">Logout</a>
172 <hr />
173
174 <?php
175 }
176
177 function display_add_bm_form()
178 {
179 // display the form for people to ener a new bookmark in
180 ?>
181 <form name='bm_table' action='add_bms.php' method='post'>
182 <table width=250 cellpadding=2 cellspacing=0 bgcolor='#cccccc'>
183 <tr><td>New BM:</td><td><input type='text' name='new_url' value="http://"
184 size=30 maxlength=255></td></tr>
185 <tr><td colspan=2 align='center'><input type='submit' value='Add bookmark'></td></tr>
186 </table>
187 </form>
188 <?php
189 }
190
191 function display_password_form()
192 {
193 // display html change password form
194 ?>
195 <br />
196 <form action='change_passwd.php' method='post'>
197 <table width=250 cellpadding=2 cellspacing=0 bgcolor='#cccccc'>
198 <tr><td>Old password:</td>
199 <td><input type='password' name='old_passwd' size=16 maxlength=16></td>
200 </tr>
201 <tr><td>New password:</td>
202 <td><input type='password' name='new_passwd' size=16 maxlength=16></td>
203 </tr>
204 <tr><td>Repeat new password:</td>
205 <td><input type='password' name='new_passwd2' size=16 maxlength=16></td>
206 </tr>
207 <tr><td colspan=2 align='center'><input type='submit' value='Change password'>
208 </td></tr>
209 </table>
210 <br />
211 <?php
212 };
213
214 function display_forgot_form()
215 {
216 // display HTML form to reset and email password
217 ?>
218 <br />
219 <form action='forgot_passwd.php' method='post'>
220 <table width=250 cellpadding=2 cellspacing=0 bgcolor='#cccccc'>
221 <tr><td>Enter your username</td>
222 <td><input type='text' name='username' size=16 maxlength=16></td>
223 </tr>
224 <tr><td colspan=2 align='center'><input type='submit' value='Change password'>
225 </td></tr>
226 </table>
227 <br />
228 <?php
229 };
230
231 function display_recommended_urls($url_array)
232 {
233 // similar output to display_user_urls
234 // instead of displaying the users bookmarks, display recomendation
235 ?>
236 &nb#
本代码也确实够长的,但是仔细看看里面的内容其实也没有什么,从介绍语法的角度来说,最好的方法就是选择其中一部分代码。这部分代码足以概括PHP的语法。选哪个为好呢?OK,就选择115行的display_user_urls函数,其代码如下:
1 function display_user_urls($url_array)
2 {
3 // display the table of URLs
4
5 // set global variable, so we can test later if this is on the page
6 global $bm_table;
7 $bm_table = true;
8 ?>
9 <br />
10 <form name='bm_table' action='delete_bms.php' method='post'>
11 <table width=300 cellpadding=2 cellspacing=0>
12 <?php
13 $color = "#cccccc";
14 echo "<tr bgcolor='$color'><td><strong>Bookmark</strong></td>";
15 echo "<td><strong>Delete?</strong></td></tr>";
16 if (is_array($url_array) && count($url_array)>0)
17 {
18 foreach ($url_array as $url)
19 {
20 if ($color == "#cccccc")
21 $color = "#ffffff";
22 else
23 $color = "#cccccc";
24 // remember to call htmlspecialchars() when we are displaying user data
25 echo "<tr bgcolor='$color'><td><a href=\"$url\">".htmlspecialchars($url)."</a></td>";
26 echo "<td><input type='checkbox' name=\"del_me[]\"
27 value=\"$url\"></td>";
28 echo "</tr>";
29 }
30 }
31 else
32 echo "<tr><td>No bookmarks on record</td></tr>";
33 ?>
34 </table>
35 </form>
36 <?php
37 }
OK,下面的描述将以本代码段的行号为准。此函数用来显示书签信息的。传入的参数是书签的数组。
看看上面的代码。我将从以下几个方面入手
- PHP的基本类型
- 如何定义PHP的变量和常量
- PHP的运算符
- PHP的表达式
- PHP的流程控制
- PHP的函数
PHP中字符串的操作
就这些,看起来还不少。
OK,说完了上面的PHP介绍,再看看上面的代码,是不是觉得很easy。要是仍然觉得有点晕,请原谅我的表达。你也可以和我联系,改进一下它们。嘿嘿。
让我们继续解释上面的内容吧。
先看第一行,
function display_user_urls($url_array)
它是用来定义一个函数,因为前面有关键字function,参数是一个URL的数组。
看看第6行,定义了一个全局变量 $bm_table,并设置为true。
第10,11行为
10 <form name='bm_table' action='delete_bms.php' method='post'>
11 <table width=300 cellpadding=2 cellspacing=0>
它定义了一个form,在form里包含一个表。这个表用来显示书签的。接着看,14,15用来显示表的Title的。背景色为"#cccccc";字体为粗体。这里你可以看到
<tr bgcolor='$color'>
$color是一个变量,在我们上面说的字符串的操作里,如何显示一个字符串以及显示字符串的规则--PHP会尽可能的识别变量,在这里就有体现。
看看判断语句
16 if (is_array($url_array) && count($url_array)>0)
is_array判断$url_array是否为数组。count获取$url_array数组的个数。
18行的代码
18 foreach ($url_array as $url)
遍历数组的每个值,然后显示在Table里。
需要注意的是这里调用了htmlspecialchars函数,此函数用来处理用户数据里的HTML特殊字符。
最后看看显示的效果吧。