PHP 和 HTML

2016-02-19 12:12 9 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的PHP 和 HTML,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】


PHP 和 HTML
PHP 和 HTML 可以互操作: PHP 能够生成 HTML, 而 HTML 可以传递信息给 PHP. 1. 我用一个 form/URL传值时,我要怎样 编码/解码? 2. 我在用 input type="image" 标记, 但 $foo.x and $foo.y 变量却不可用. 它们在哪里? 3. 我怎样创建 HTML form数组? 4. 我怎样从一个多选框得到所有的结果值?
1. 我用一个 form/URL传值时,我要怎样 编码/解码?
在几个阶段里,编码是非常重要的. 假设你有一个 字符串变量 $data, 它包含一些你要以 未编码 方式传递的字符, 要经过下面阶段的编码:

HTML 解释. 为了表示任何一个字符串, 你必须 把它包含在双引号里, 而且是HTML特殊字符的要使用 htmlspecialchars写法.
URL: URL 由几部分组成. 你想你的数据被看成URL的一部分, 你 必须 用 urlencode()编码它.


例 52-1. 隐藏的 HTML 表单元素 ?php    echo "input type=hidden value="" . htmlspecialchars($data) . ""n";?
注意: 这里不能用urlencode() $data, 因为 urlencode() 数据是浏览器的责任. 绝大多数浏览器可以正确处理这样的数据. 无论用何种方法( GET POST). 你可以只考虑 GET 请求, 因为 POST 请求通常被隐藏了.
例 52-2. 用户编辑数据 ?php    echo "textarea name=mydatan";    echo htmlspecialchars($data)."n";    echo "/textarea";?
注意: 在浏览器窗口显示的数据会被解码成可读的,因为浏览器会对 HTML 标记进行解释.
一旦提交, 无论GET 还是 POST, 浏览器在传输数据时会进行URL编码,PHP则会对它进行解码. 一切都是自动进行的,你不需要做什么.
例 52-3. 在URL串里 ?php    echo "a href="" . htmlspecialchars("/nextpage.php?stage=23&data=" .        urlencode($data)) . ""n";?
注意: 实际上你在自己写一个 GET 请求, 所以用urlencode() 对它进行编码就是不可缺少的.
注意: 你需要htmlspecialchars() 整个URL串, 因为URL串是 HTML-属性的一部分. 这种情况下, 浏览器首先 反-htmlspecialchars() 这个值, 然后送出 URL . PHP 会识别这个URL串, 因为你用 urlencoded() 对它进行了编码.
你会发现 & 在 URL 串中 被替换成 &. 虽然你没有编码大部分的浏览器也会帮你做,但并不是所有的都能. 所以即使你在写一个静态的URL,你也需要 用 htmlspecialchars() 来对 URL 进行编码.

2. 我在用 input type="image" 标记, 但 $foo.x and $foo.y 变量却不可用. 它们在哪里?
在提交一个表单里, 可能使用一个 image 控件而不是使用 标准的提交按钮: input type="image" src="image.gif" name="foo"When 当用户点上 image 控件的某个地方时, 表单被提交到服务器,并有两个附加的变量: foo.x and foo.y.
因为 $foo.x 和 $foo.y 在 PHP 里是无效的变量名, 所以它们自动被转换成$foo_x and $foo_y. 也就是说, 圆点被替换成了下划线.
3. 我怎样创建 HTML form数组?
为了使你的表单结果作为数组送往PHP脚本,你可以给 input, select or textarea 元素象下面这样取名: input name="MyArray[]"input name="MyArray[]"input name="MyArray[]"input name="MyArray[]"注意元素名后面的中括号不能省, 就是它使结果成为一个数组. 你可以通过元素名把它们排成不同的数组 : input name="MyArray[]"input name="MyArray[]"input name="MyOtherArray[]"input name="MyOtherArray[]"上面的代码产生了两个数组, MyArray 和 MyOtherArray, 送往PHP. 当然也可以为你的数组指明键值: input name="AnotherArray[]"input name="AnotherArray[]"input name="AnotherArray[email]"input name="AnotherArray[phone]"AnotherArray 数组会容纳下标 0, 1, email and phone.

说明: 在元素名里标明下标值是可选的.如果你没有标明,数组会按元素在表单里出现的顺序来依次填充. 如我们的头一个例子里数组的下标分别是: 0, 1, 2 and 3.

参见 Array 函数 and PHP外部变量.
4. 我怎样从一个多选框得到所有的结果值?
HTML里的多选框是用来让用户从列表里选多个值的.这些值然后被送往表单的处理脚本. 问题在于它们都有同样的变量名. 例如: select name="var" multiple每一个被选择的项会这样传值给处理脚本: var=option1var=option2var=option3每个值覆盖了前一项的值. $var 解决办法是使用 PHP的 "表单元素数组"特性.下面就是: select name="var[]" multiplePHP会把 $var当成一个数组.每个被选择项都会分配给一个数组单元. 第一项是$var[0], 下一项是 $var[1], 依此类推. count() 函数可以用来判断数组有多少选择项 ,如果有必要的话,还可以用 sort() 函数来对数组进行排序.
如果你在使用 JavaScript , 直接使用元素名引用可能会出错. 你应该使用它的数字索引,或者把变量名放在单引号之内.例如: variable = documents.forms[0].elements['var[]'];

来源:https://www.tulaoshi.com/n/20160219/1600182.html

延伸阅读
HTML 组件(HTML COMPONENTS)是IE5。0的主要扩展之一,其也最具革命性,微软的意图是用HTML组件来取代ACTIVEX控件,和ACTIVE控件一样,HTML组件是自持续封闭对象,可以一次开发任意使用,使用HTML组件有很多好处,本文将给您揭示其中的一些! HTML组件带入了很多新的术语、思想、对象、方法和属性,我将通过一个日历应用给您接受这些,这个日...
标签: Web开发
抓取和分析一个文件是非常简单的事。这个教程将通过一个例子带领你一步一步地去实现它。让我们开始吧!  首先,我首必须决定我们将抓取的URL地址。可以通过在脚本中设定或通过$QUERY_STRING传递。为了简单起见,让我们将变量直接设在脚本中。  ? $url = 'http://www.php.net'; ?  ...
标签: Web开发
以下范例将 XML 文档中的标记符直接映射成 HTML 标记符。在“映射数组”中不存在的元素将被忽略。当然,该范例将只对一个特定的 XML 文档有效。 ?php $file = "data.xml"; $map_array = array( "BOLD" = "B", "EMPHASIS" = "I", "LITERAL" = "TT" ); function startElement($parser, $name, $attrs) { global $map_array...
在学习网页设计的过程中,对遇到的好多问题都没有深究,比如说html和htm的关系,今天特意整理了一下,希望对你也有所帮助。 包含HTML内容的文件最常用的扩展名是.html,但是像DOS这样的旧操作系统限制扩展名为最多3个字符,所以.htm扩展名也被使用。虽然现在使用的比较少一些了,但是.htm扩展名仍旧普遍被支持。 两种都是静态网页文件的扩展...
标签: Web开发
    这篇文章主要阐述 HTML 和 XHTML 的区别。简单来说,XHTML 可以认为是 XML 版本的 HTML,为符合 XML 要求,XHTML 语法上要求更严谨些。 以下是 XHTML 相对 HTML 的几大区别: XHTML 要求正确嵌套 XHTML 所有元素必须关闭 XHTML 区分大小写 XHTML 属性值要用双引号 XHTML 用 id 属性代替 ...

经验教程

780

收藏

91
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部