已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 讨论/求助

标题: 这个这个…我怎么又出错了???

作者: @Ta

时间: 2012-07-01

点击: 1456

<html>
<body>
<title>资源共享 资源下载</title>
<?/*这里多了一个空格*/ php 
echo"资源名:".$_POST["name"].""; 
 
 
/**
*现在是在php里呢,<a是什么语句?!
*/
<a href="http://g.10086.cn/spbbs/wap/index.php?action=goto&url=http://".$_POST["address"]."">点击下载</a>
/**
* 你要注意,你虽然可以把php嵌入html,但是你不能把html嵌入php。
* 你不能在<?php ?>里面直接使用html标记,你必须把它们放在引号里面,不能让它们裸露在外面(你上面那些html就是裸露在外面的)。
* 就像这样:
*/
echo '<a href="http://g.10086.cn/spbbs/wap/index.php?action=goto&url=http://'.$_POST["address"].'">点击下载</a>';
/**
* 这个语句被分成了好几个部分:
* 第一部分是用来输出内容的语句:
*     echo
* 第二部分是用单引号包起来的字符串:
*     '<a href="http://g.10086.cn/spbbs/wap/index.php?action=goto&url=http://'
* 第三部分是一个字符串变量:
*     $_POST["address"]
* 第四部分是用单引号包起来的字符串:
*     '">点击下载</a>'
* 字符串的不同的部分用 . 连接,拼成一个整体再用echo输出。
* 所有不属于php的部分都用引号包了起来,没有任何不符合php语法的东西裸露在外面。
* 你是否明白了?
*/
/**
* 现在我们再来分析一下你写的:
*/
<a href="http://g.10086.cn/spbbs/wap/index.php?action=goto&url=http://".$_POST["address"]."">点击下载</a>
/**
* 第一部分是:
*     <a
* php显然不知道<a是什么,某个东西小于常量a?但是你没有写到底是什么小于a啊。于是,php抛出一个错误给你,告诉你它无法理解<的深刻含义。
* 所以,你不能把html裸露在外。
* 我们接着往下看。当你把html裸露在外时会发生什么。
* 第二部分是:
*     href=
* 事实上php的语法分析在遇到<a的时候就已经停止了。但是我们假设它继续进行,那么它就会这么解读这部分:
*    你要给一个名为href的常量赋值。
* 给常量赋值?!这当然是不允许的。
* 接下来的一部分是:
*    "http://g.10086.cn/spbbs/wap/index.php?action=goto&url=http://"
* 你本来要输出的属于html的引号却成了php的一部分。如果你:
*     echo "http://g.10086.cn/spbbs/wap/index.php?action=goto&url=http://";
的话,你看到的将是不包含引号的内容,因为php认为只有在引号里面的才是要输出的内容,引号本身不是----它只是告诉php要输出的内容从哪里开始,到哪里结束。
* 从哪里开始,到哪里结束。这句话很重要。因为有的时候,我们会让php弄不清楚到底是从哪里开始,到哪里结束。
* 比如,你想要输出一个引号,怎么办呢?
* echo '<a href="b">c</a>';
* 这样很好,php很清楚的看到内容从第一个单引号开始,到第二个单引号结束。
* 但是我不想使用单引号,我想使用双引号怎么办?
* echo "<a href="b">c</a>";
* 这样吗?哦,不!php会认为内容分为三部分,第一部分是:
*     "<a href="
* 第二部分是:
*     b
* 第三部分是:
*      ">c</a>"
* 而且这三部分之间没有使用任何符号连接,它们直接堆在一起,完全不知道到底是什么意思!
* 很显然,php误把html的引号当成它自己的引号来解释了。但是我们没有告诉它,php又怎么知道哪些是它自己的引号,哪些是要输出的html的引号呢?它们长得一模一样!
* 所以,必须体现出区别。我们把这种区别叫做转义:
* echo "<a href=\"b\">c</a>";
* 当php遇到转义符号\的时候,它就会知道,后面紧接着的引号不属于它自己,它必须把它看成内容的一部分。
* 于是,一切都正常了。
*/
?>
</body>
</html>

[隐藏样式|查看源码]


『回复列表(2|隐藏机器人聊天)』

1. 引号错了,请检查
(/@Ta/2012-07-01 09:00//)

2. 虎哥怎么不教我
555…
(/@Ta/2012-07-01 11:58//)

回复需要登录

8月23日 22:01 星期六

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1