PHP 板


LINE

看板 PHP  RSS
※ 引述《NUKnigel (简简单单)》之铭言: : 今天第一次碰php & mysql : 但刚刚忙了一个早上 : 发现如果用xhtml的方法来表示 table : 会无法显示 @@ : 但是一改成html就成功显示... : 是我的方法错误...还是php 和 xhtml本来就不相容呢? 方法错误。PHP和 XHTML是不同层面的技术;XHTML 只是 种资料的表现方式,若 PHP的输出符合 XHTML 的格式, 便不会有相容性上的问题。 请看下面的 code : echo "<table summary="教师资料">"; 上头有个基本、但不小心却容易忽略的"脱序"问题。 我想 PHP 解析器应该会跟你抱怨看不懂程式码。 正确的输出格式应为 "<table summary=\"教师资料\">"; // A 或是 '<table summary="教师资料">'; // B 或 "<table summary='教师资料'>"; // C 一般我偏好使用 B 的方式,因为 xhtml规格中,我记得有定义 属性的值以 " quote。 另外,像你这边有另外一种写法可以参考: ------------------------------------------------------ <?php // $link =... // ... // 资料库的连结. (略) ?> <!-- 以下为原本用 echo 输出 html 的内容 --> <table summary="教师资料"> <colgroup span="1"></colgroup> <!-- 略 --> <thead> <tr> <th scope="col">product_id</th>; <!-- 略 --> <!-- 重点来了 :) --> <!-- 如果 php.ini 的 short_open_tag = off 那麽底下用 <? 的地方需改为 <?php <?= 则改为 <?php echo .. 这麽一来有点罗唆,所以还是开一下吧 :P --> <? while($row = mysql_fetch_array($result)): ?> <tr> <td><?=$row['product_id']?></td> <td><?=$row['product_name']?></td> <!-- 略 --> </tr> <? endwhile ?> </tbody> </table> <?php // 回到 php 中 mysql_free_result($result); ?> ------------------------------------------------------ 用上述的写法有几个好处: 1. 得到的 HTML是原生的(省掉一些针对 html 原始码的缩排和脱序) 2. 即便 HTML和 PHP混在一起,还是能使程式码简洁 3. HTML的内容如果很复杂,如此编写方式相对方便检视除错 将输出与程式逻辑分开,有助於提升整体的可维护性。如果曾经 接手别人写的案子、或维护自己几个月前写的程式码,应该会感 谢前头有人种树 XD 现在 Web Application 流行使用 Model-View-Control 的开发方 式。上述例子的编写方式,其实隐含着相同的精神。 : code : ----------------------------- : <?php : $link = mysql_pconnect("localhost", "xxxxxx", ""); : mysql_select_db("shopping") or die("无法选择资料库"); : $query = "SELECT * FROM product"; : $result = mysql_query($query) or die("无法送出" . mysql_error( )); : echo "<table summary="教师资料">"; : echo "<colgroup span="1"></colgroup>"; : echo "<colgroup span="2"></colgroup>"; : echo "<colgroup span="3"></colgroup>"; : echo "<colgroup span="4"></colgroup>"; : echo "<colgroup span="5"></colgroup>"; : echo "<colgroup span="6"></colgroup>"; : echo "<thead>"; : echo "<tr>"; : echo "<th scope="col">product_id</th>"; : echo "<th scope="col">product_name</th>"; : echo "<th scope="col">price</th>"; : echo "<th scope="col">category</th>"; : echo "<th scope="col">product_family</th>"; : echo "<th scope="col">product_class</th>"; : echo "</tr>"; : echo "</thead>"; : echo "<tbody>"; : while ( $row = mysql_fetch_array($result) ){ : echo "<tr>"; : echo "<td scope="row">".$row['product_id']."</td>"; : echo "<td scope="row">".$row['product_name']."</td>"; : echo "<td scope="row">".$row['price']."</td>"; : echo "<td scope="row">".$row['category']."</td>"; : echo "<td scope="row">".$row['product_family']."</td>"; : echo "<td scope="row">".$row['product_class']."</td>"; : echo "</tr>"; : } : echo "</tbody></table>"; : mysql_free_result($result); : ?> -- 「640K ought to be enough for anybody.!」 - Bill Gates - --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.199.121
1F:→ foxzgerald:PS: <!-- 这是 html 中所使用的注解 --> 12/17 15:20
2F:推 superGA:我觉得用here document就差不多了 这样写有点累 12/17 15:31
3F:→ superGA:这种写法很接近用Smarty了 不如直接用Smarty 12/17 15:32
4F:推 foxzgerald:看规模吧:P 若只是一两千行的小作业,我觉得应该还过意 12/17 15:43
5F:→ foxzgerald:得去。而且 Smarty的 cache tunning如果没弄好,网页大 12/17 15:47
6F:→ foxzgerald:会慢到一种稍微不耐烦的境界 XD 12/17 15:48
7F:推 NUKnigel:谢谢^^"...因为学过C就直接想实做,果然会出错( ̄□ ̄|||) 12/17 16:11
8F:推 NUKnigel:下面第二个重点~也受益良多^^这样写直观多了~再次感谢 12/17 16:17
9F:推 foxzgerald:如果输出内容需要逻辑控制. 用 here document 也会挺繁 12/18 14:31
10F:→ foxzgerald:琐的;这种写法和 smarty中的控制标签类似,但是因为 12/18 14:32
11F:→ foxzgerald:smarty 最後还是把它解析成 php .. 而这种方式是直接以 12/18 14:34
12F:→ foxzgerald:php 控制,理论上效能应该会比较好一点 12/18 14:34







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP