PHP网站制作之PHP 和 HTML
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。 PHP 和 HTMLPHP 和 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=mydata>\n"; 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=http://www.163design.net/p/a/"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"><input name="AnotherArray">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[]" multiple>PHP会把 $var当做一个数组.每一个被选择项城市分派给一个数组单位. 第一项是$var, 下一项是 $var, 依此类推. count() 函数可以用来判别数组有几何选择项 ,假如有需要的话,还可以用 sort() 函数来对数组停止排序.
假如你在利用 JavaScript , 直接利用元素名援用能够会失足. 你应当利用它的数字索引,或把变量名放在单引号以内.例如: <?php echo "<textarea name=mydata>\n"; echo htmlspecialchars($data)."\n"; echo "</textarea>";?>0接触MYSQL,开始设计数据库程序 当然这种网站的会员费就几十块钱。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎, 我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
页:
[1]