|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
参加PHP开发学习,或许只是一次偶然的想法吧!只是想在走向社会之前体验、学习在一个公司或者说是项目团队之中如何去更有效的沟通、交流、共同合作,还有就是为毕业实习找工作增加伐码。 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=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[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[]" multiple>
复制代码 PHP会把 $var当做一个数组.每一个被选择项城市分派给一个数组单位. 第一项是$var[0], 下一项是 $var[1], 依此类推. count() 函数可以用来判别数组有几何选择项 ,假如有需要的话,还可以用 sort() 函数来对数组停止排序.
假如你在利用 JavaScript , 直接利用元素名援用能够会失足. 你应当利用它的数字索引,或把变量名放在单引号以内.例如:- <?php echo "<textarea name=mydata>\n"; echo htmlspecialchars($data)."\n"; echo "</textarea>";?>0
复制代码 接触MYSQL,开始设计数据库程序 |
|