php输出HTML代码

    PHP语言作为服务器端的脚本,是在服务器上被执行的。客户端(浏览器)请求时,PHP语言在服务器上被解析执行,生成html代码,然后通过服务器发送到浏览器,浏览器上已经没有PHP语言的任何信息,在客户端是看不到PHP源代码的。除非用非法的手段“黑”了服务器,才可以获取PHP的源代码。

    利用PHP的这个特点,可以简单的设置密码访问。比如要求客户端输入密码,然后PHP的if语句判断密码是不是正确,正确的话显示某些东西给浏览器,错误的话就返回错误信息。

    PHP“显示某些东西给浏览器”就是输出HTML代码,在PHP中常用echo语句来输出HTML代码:

echo "<html>";
echo "<head>";
echo "<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>";
echo "</head>";
echo "<body>";
echo "<h1>我是标题!!!</h1>";
echo "</body>";
echo "</html>";

     一般来说先编写好HTML代码,然后把它们放到PHP脚本中,需要注意的是:

    1、原来HTML中有双引号"的话,要先替换成单引号'

    2、原来HTML中有JS、Script的话,要将函数中的$替换成\$

    简单一些的HTML文件行数不多,如果行数多的话,每行HTML代码之前要添加echo ",每行末尾要添加";,太麻烦了。下面的办法可以将整段HTML复制进去,效果和上面一样:

echo <<<END
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<h1>我是标题!!!</h1>
</body>
</html>
END;

     这样的好处在于随时可以将HTML代码取出来,然后再次编辑、调试。注意END;必须是顶格且后面没有其他任何字符了!双引号不必替换成单引号,但是$前面还是要加\的!

    再回到前面说的php验证密码,举例说明:

    index.html显示密码输入框:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<html>
<body>
<form method="post" action="login.php">
<input type="password" name="password";><br>
<input type="submit" name="submit" value="登陆" class="div20";>
</form>
</body>
</html>

    就像这样:

    输入密码、点击登录后,index.html将密码传输给login.php:

<?php
$password = (int)$_POST['password'];
if($password == '123456'){
echo <<<END
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>文档</title> 
</head>
<body>
经过了密码验证,你看到了这个文档
</body> 
</html> 
END;

}else{
echo "<script>location.href='http://baidu.com';</script>";
}
?>

    如果你输入的密码是123456,那么会显示一个标题为“文档”的网页给你看,如果密码错误,那么网页会跳转到百度。

    这只是一个简单的示例,你可以将其复杂化,比如你输入用户名user密码password将展示哪一些预定内容;比如一个用户名配比多个密码,当输入用户名user密码password时展示一些简单的预定的内容,如果输入用户名user密码passwordABC123password这样复杂密码的时候,展示一些更加隐秘的预定内容,这样就不怕别人暴力破解了。