原文:PHP 3:从Login界面谈PHP标记

前一篇文章简要介绍了此实例。
OK,我们就从第一个页面Login页面入手吧。
还是看看界面

怎么样,是不是很想指导它到底是如何实现的呢?好的,看看其代码吧:

1<?php
2 require_once('bookmark_fns.php');
3 do_html_header('');
4
5 display_site_info(); 
6 display_login_form();
7
8 do_html_footer();
9?>

看见这些代码你有什么看法?OK,我下面一一做出解释:
1)PHP如何从HTML分离
   看看第1行和第9行,那么是

<?php
  
?>

当 PHP 解析一个文件时,会寻找开始和结束标记,这里,开始标记是<php,结束符号是?>,如果你使用过ASP.NET,肯定还记得<% %>,它们的作用有点类似。这些标记告诉 PHP 开始和停止解释这些标记内包含的代码。使用了这些标记,PHP就会忽略它们之外的内容。这样它们可以嵌入到各种文档中,当然最常见的就是嵌入HTML页面里。
 上面介绍的是最常见的HTML分离,那么有没有更高级的呢?当然有。例子如下:

 1<?php
 2 if($IsFinished)
 3  {
 4?>
 5  <strong>Congrats on you! You finished the job!</strong>
 6<br>
 7<?php
 8  }
 9  else
10  {
11?>
12<strong>I'm sorry to hear that.Go on doing it!</strong>
13<?php
14}
15?>

此例可正常工作,并且结果是
    I'm sorry to hear that.Go on doing it!
 因为当 PHP 碰到结束标记 ?> 时,就简单地将其后的内容原样输出直到碰到下一个开始标记为止。当然,上面的例子很做作,但是对输出大块的文本而言,脱离 PHP 解析模式通常比将所有内容用 echo() 或者 print() 输出更有效率。

可以在 PHP 中使用四对不同的开始和结束标记。其中两种,<?php ?> 和 <script language="php"> </script> 总是可用的。另两种是短标记和 ASP 风格标记,可以在 php.ini 配置文件中打开或关闭。尽管有些人觉得短标记和 ASP 风格标记很方便,但移植性较差,通常不推荐。 以上文字来自PHP网站。
OK,总结一下,PHP标记有4种。
分别是:
(1). 上面的这种,例子是

1<?php echo "this is the first style" ?>

(2) 类似于JavaScirpt的,可以为

1<script language="php">
2echo "this is the second style, similiar with  JavaScript.:)"
3</script>

(3) 短标记类型,可以为

1<? echo 'this is the third style'; ?>

或者

1   <?= expression ?> This is a shortcut for "<? echo expression ?>"

(4) ASP风格的,可以为

1<% echo 'ASP-style tags'; %>
2   <%= $variable; # This is a shortcut for "<% echo . . ." %> 

一般来说,1,2总是可以用的,但是第一种看起来更加常用。
至于第3种,仅当php.ini 配置文件中的指令 short_open_tag 打开后才可用,或者在 PHP 编译时加入了 --enable-short-tags 选项。
至于第4中,仅当 php.ini 配置文件中的指令 asp_tags 打开后才可用。

注意:以上例子已经测试通过。
2) require_once

 这个问题类似C/C++里的include,将头文件引入,同时也类似于C#里的using namespace,Java里的import等。这里就是将bookmark_fns.php文件引入。但是仅仅这些吗?不是。它与 require() 语句类似,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含.说着说着,还有2个函数,include()和include_once(),require() 和 include() 除了怎样处理失败之外在各方面都完全一样。include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果想在丢失文件时停止处理页面,那就别犹豫了,用 require() 吧。include() 就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。

3)函数
  下面有4个函数,即:

do_html_header('');

 display_site_info(); 
 display_login_form();

 do_html_footer();

你可能比较纳闷,这些家伙们是从哪里出来的呢?不要紧,可以这么理解,类似于C语言,require_once引用了bookmark_fns.php头文件,这些函数都包括在这个头文件里了。打个比方,但是有些叫法可不能这么叫的.
说说这些函数是干什么用的吧。
do_html_header('')是用来页面的头。即PHPBookmark。
 display_site_info()显示Site的信息,即“Store your bookmarks online with us!..."这段话的。
display_login_form()显示登录的那部分。
do_html_footer()显示页尾的。
至于它们怎么定义,在一篇文章里描述。

PHP 3:从Login界面谈PHP标记的更多相关文章

  1. PHP 4:从Login进一步看到的

    原文:PHP 4:从Login进一步看到的 我们已经在PHP 3:从Login界面谈PHP标记谈到了PHP标记,不过其页面代码有一句 require_once('bookmark_fns.php'); ...

  2. PHP系列目录

    原文:PHP系列目录 PHP系列的对象是已经熟悉了一门或多门语言的开发人员.如果你是其中一份子,而且你也打算学习PHP,相信你根据本系列会很快掌握PHP的.欢迎大家给出意见或建议.同时也欢迎大家的批评 ...

  3. QTP之对测试用例的自动化过程的分解

    第一部分:自动化一个测试用例 当你要开始自动化一个测试用例的时候,有一些重要的事情需要完成.当你完成所有这些事情的时候,测试脚本的自动化也随之完成. 在这里,我们将首先在大部分的自动化测试用例里找出所 ...

  4. QTP的基本功能介绍

    • QTP的基本功能介绍 HP QuickTest Professional 支持功能測试和回归測试自己主动化,用于每一个主要软件应用程序和环境.此解决方式使用keyword驱动的測试概念,简化了測试 ...

  5. asp.net core后台系统登录的快速构建

    登录流程图 示例预览 构建步骤 当然,你也可以直接之前前往coding仓库查看源码,要是发现bug记得提醒我啊~ LoginDemo地址 1. 首先你得有一个项目 2. 然后你需要一个登录页面 完整L ...

  6. Django+xadmin打造在线教育平台(三)

    五.完成注册.找回密码和激活验证码功能 5.1.用户注册 register.html拷贝到templates目录 (1)users/views.py class RegisterView(View): ...

  7. 在AndroidManifest.xml文件中设置Android程序的启动界面方法

    从网上搜集了一堆的Android代码,比如Android的Login程序和Android的Helloworld程序,但是却总不能正确运行一个正确的程序,郁闷了很久,终于在一次一次的测试后成功的在And ...

  8. 【高速接口-RapidIO】3、RapidIO串行物理层的包传输过程

    一.引言 前几篇文章已经谈到RapidIO的协议,串行物理层与控制符号. RapidIO协议包括读事务(NREAD),写事务(NWRITE),流写事务(SWRITE),有响应的写事务(NWRITE_R ...

  9. 3.RapidIO串行物理层的包传输过程

    转自https://www.cnblogs.com/liujinggang/p/10005431.html 一.引言 前几篇文章已经谈到RapidIO的协议,串行物理层与控制符号. RapidIO协议 ...

随机推荐

  1. Hadoop Hive sql 语法详细解释

    Hive 是基于Hadoop 构建的一套数据仓库分析系统.它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,能够将结构 化的数据文件映射为一张数据库表,并提供完整的SQL查 ...

  2. ASP.NET文件上传和下载

    大学最近作出相关的需求进行上传和下载文件的网站(求为:站点发布的通知,在后台要能给每一个通知加入附件.在前台要能显示并下载附件),之前仅仅是学习过关于上传的 理论知识,这里实践了一下下,与大家分享一下 ...

  3. 实现BUG自动检测 - ASP.NET Core依赖注入

    我个人比较懒,能自动做的事绝不手动做,最近在用ASP.NET Core写一个项目,过程中会积累一些方便的工具类或框架,分享出来欢迎大家点评. 如果以后有时间的话,我打算写一个系列的[实现BUG自动检测 ...

  4. gtest简短,简单易用

    gtest它是一种跨平台的(Liunx.Mac OS X.Windows.Cygwin.Windows CE and Symbian)的C++测试框架.有google该公司宣布. gtest台上为编写 ...

  5. linux 文件系统解析及相关命令(转)

    简介 文件系统就是分区或磁盘上的所有文件的逻辑集合. 文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件.目录.软连接及文件保护信息等都存储在其中. 不同Lin ...

  6. JavaScript省市联动菜单

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. X86在逻辑地址、线性地址、理解虚拟地址和物理地址

    参考:http://bbs.chinaunix.net/thread-2083672-1-1.html 本贴涉及的硬件平台是X86.假设是其他平台,不保证能一一对号入座.可是举一反三,我想是全然可行的 ...

  8. Spring3+SpingMVC+Hibernate4全注解环境配置

    Spring3+SpingMVC+Hibernate4全注解环境配置 我没有使用maven,直接使用Eclipse创建动态Web项目,jar包复制在了lib下.这样做导致我马上概述的项目既依赖Ecli ...

  9. Sql Server脚本使用TFS版本控制

    原文:Sql Server脚本使用TFS版本控制 1.安装TFS插件 Microsoft Visual Studio Team Foundation Server 2010 MSSCCI Provid ...

  10. Android(Lollipop/5.0) Material Design(六) 自定义动画

    官网地址:https://developer.android.com/intl/zh-tw/training/material/animations.html 动画在Material设计中,为用户与a ...