PHP 和 HTML

 更新时间:2016年11月25日 17:16  点击:1491
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) . ""> ";?>
PHP4:奇迹背后
1995年时,Rasmus在用PHP写他的个人主页;今天,PHP成为风靡全球的脚本语言,越来越多的站点选择使用PHP,连Yahoo都放弃了自己的脚本而改用PHP支持它的网站。可以说,PHP是一个奇迹。我一直认为,任何奇迹背后都有它的原因。现在,就让我们透过这个奇迹,来看看PHP的成功之道。
1 简单易用
PHP的入门门槛很低,它对使用者的要求微乎其微。学过C语言的人,使用PHP几乎不需要什么时间。它们的语法是如此相似,以至于我常常想,是不是在C语言变量前加个$就能改成PHP。这使得大量C程序员在网络脚本中选择了PHP。另外,比起ASP的组件系统和Java庞大的类库来,PHP的函数库要好学多了。在编程风格上,PHP更是自由,你可以使用N种风格来写你的脚本程序。这些特性使得PHP成为初学者的首选语言。抢占初学者市场是很重要的策略。如同任何人都会对自己的初恋记忆犹新一样,人们往往会对最初学习的语言有很深的感情。即使后来自己成长了,改用其他语言了,还是会时时记起最初学习的语言。在这点上,PHP做得很出色。
2 剪裁得当
PHP开发组是最了解网络的一群人,他们非常清楚用户要的是什么。PHP就是要做一个出色的网络脚本语言,而且,它只是要做一个网络脚本语言。PHP提供的函数集在网络方面相当强大,而且重点均专注于网络应用。像PHP中的无组件文件上传,超多数据库支持等特性都表现出这个特点。顺便说一句,PHP甚至支持ACCESS数据库。专注使得PHP在网络上表现出极其优秀的性能。有失才能有得。
3 支持强大
PHP有强大的OpenSource团体支持,在网络上有数以万计的开源代码。你可以整合几个现有程式来实现你的应用,也可以分析大师级的代码来得到提高。PHP还有很多扩展性的项目来增强PHP在某个方面的功能。像注重编程规范化和代码重用的PEAR,提供可编译模板技术的Smarty,甚至开发桌面程序的GTK。
分析完这几个理由,我们可以看出,PHP的成功得益于PHP开发组的战略眼光。PHP提供了一个最小工作集,使用户能用最简单的方式高效地完成自己需要的应用。这正是初学者需要的。然后它通过方便的扩展来提供各个方面的解决方案,这样,你只需要学你要用到的那个领域的东西。当你涉及的领域越来越多时,你的水平也随之提高,当你熟悉了大多领域时,回头看看,会发现不知不觉已到山腰。PHP也提供了我们一种学习态度。
ASP.net+J2EE:风雨欲来
网络脚本界的革新浪潮由Microsoft的ASP.net首先发起。在ASP.net中,有一个很吸引人的东西——事件驱动机制。这在桌面编程中是很普通的概念,而在脚本编程中事件驱动意味着对服务器端的脚本(如PHP、JSP、ASP)和客户端的脚本(如JavaScript和VbScript)进行封装,使之协同工作。这样一来,编程就会变得异常方便。在.net环境中的事件驱动还有一个优势,就是你甚至可以不会任何服务器端脚本和客户端脚本,因为在ASP.net中,是可以直接使用C#这样的语言的——连$都不用加。这为MS阵营的传统程序员转向网络开发铺平了道路,同时,也使PHP在初学者市场上受到很大的打击。可以预见,以后的传统程序员转向PHP的将大为减少。不过ASP.net最大的问题在于它只能在Windows上运行,而现在大陆正在大力发展Linux。这使得PHP的生存空间似乎宽了点,但是——让我们来看看Java吧。
1. PHP是什么?
2. PHP 代表什么?
3. 各版本之间有什么关系?
4. 我可以同时运行不同版本的PHP吗?
5. PHP 3 和 PHP 4有什么区别?
6. 我想我发现了一个BUG,我应该告诉谁 ?
1. PHP是什么?
在 手册前言上写到:
PHP是一种嵌入式HTML脚本语言。它的大多数语法来源于C,也有一部分PHP特性借鉴于Java 和 Perl 。这种语言的目的是让WEB开发 人员能够快速高效地写出动态生成的页面。
这儿 (在 Zend站点上)是 Stig S骠her Bakken 写的一个好的PHP的介绍。
 还有, 很多 PHP 资源 都是可以免费得到的.
2. PHP 代表什么?
PHP 代表什么? PHP: 超文本预处理器. 这样的一种代表使很多人感到困惑,因为简写的头一个词就这简写本身。
 这种类型的简写称为递归简写。
 好奇的人可以阅览 在线免费计算机词典查阅更多的信息
3. 各版本之间有什么关系?
PHP/FI 2.0 是早期版本,现在它不再被支持。
 PHP 3 是 PHP/FI 2.0 继承者, 比PHP 2要好一些。
 PHP 4 是最终版本(目前), 它使用了 Zend 引擎 机制。
4. 我可以同时运行不同版本的PHP吗?
是的,可以。详情参阅PHP源代码发行包里的 INSTALL 文件。当然,也要读一下相关的 附件.
5. PHP 3 和 PHP 4 有什么区别?
PHP 4 的书的作者们写了 许多文章 关于这个.下面是其中最重要的新特性:
扩展API模块
UNIX下通用的编译过程
通用WEB服务接口,支持多线程 WEB 服务器
改进的语法
内置HTTP session 支持
输出缓冲支持
更为强大的配置系统
引用计数
如果想看这些特性的细节,请参阅 What's new in PHP 4 overview 如果你正在从PHP 3 转向PHP 4, 那还得读相关 附件。
6. 我想我发现了一个 bug! 我应该告诉谁?
你首先应该去 PHP Bug Database 查一下,确认这不是一个已知的 bug。
 如果在数据库里没有发现它,那么就填写报告表格来报告这个bug。
 记住,一定要使用 bug 而不是简单地通知给一个邮件组,因为在数据库里bug 会分配一个 tracking number 以便于你将来返回来查询bug的进展状态。
 bug database可以在下面的地址找到: http://bugs.php.net/.

/*
+-------------------------------------------------------------------------------+
| = 本文为Haohappy读<<Core PHP Programming>>
| = 中Classes and Objects一章的笔记
| = 翻译为主+个人心得
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢
| = 欢迎批评指正,希望和所有PHP爱好者共同进步!
+-------------------------------------------------------------------------------+
*/
第六节--访问属性和方法
一个对象实例的属性是变量,就像PHP的其他变量一样. 但是你必须使用->运算符来引用它们. 不需要在属性前使用美元符$. 例如, 6.1中打印User对象的name属性那一行.
可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性. 你甚至可以用双重引用的字符串来放置这些表达式. 看6.5中的例子,对象House中的属性room包含了一组Room对象.
访问方法和访问属性类似. ->运算符用来指向实例的方法. 在例子6.1中调用getLastLogin就是. 方法执行起来和类外的函数几乎相同.
如果一个类从另一类中继承而来,父类中的属性和方法将在子类中都有效,即使在子类中没有声明. 像以前提到过的,继承是非常强大的. 如果你想访问一个继承的属性,你只需要像访问基类自己的属性那样引用即可,使用::运算符.
<?php
class Room
{
public $name;
function __construct($name="unnamed")
{
$this->name = $name;
}
}
class House
{
//array of rooms
public $room;
}
//create empty house
$home = new house;
//add some rooms
$home->room[] = new Room("bedroom");
$home->room[] = new Room("kitchen");
$home->room[] = new Room("bathroom");
//show the first room of the house
print($home->room[0]->name);
?>
PHP有两个特殊的命名空间:parent命名空间指向父类,self命名空间指向当前的类. 例子6.6中显示了如何用parent命名空间来调用父类中的构造函数. 同时也用self来在构造函数中调用另一个类方法.
<?php
class Animal //动物
{
public $blood; //热血or冷血属性
public $name;
今天做网站的可离不得数据库,说不定你维护的网站就连接着MySQL数据库。MySQL是一种关系型数据库管理系统(RDMS),我们知道,有了数据库,你的网站才会由死气沉沉的静态站点一跃而变得“神采奕奕”、活力四射,个人数据的管理、一般性的日常数据库应用等等都靠网站后端的数据库支撑着呢,这就是MySQL大显神威的地方了!我们这篇文章要谈论的就是MySQL数据库,希望读者能从概述性的本文中学到更多关于MySQL数据库的知识,由此进入MySQL世界的大门。
巨便宜的全能数据库
MySQL在开放源代码世界和Web团体社区中都是如雷贯耳的流行数据库系统,而且,实质上已经成为了免费数据库软件事实上的标准。原因何在呢?其实,MySQL数据库确实是一种真正面向大众的“下里巴”式、通俗的解决方案,它吸引了为数众多的、各种各样的数据库用户和数据库管理员,我们随后就会讨论到这些。
Mysql获得巨大成功还有另外一个原因:要获得它特别方便。在开放源代码世界里,GPL是共享开放源代码软件的一种标准许可协议;它规定自由软件(我们现在说的就是MySQL)可以无须付费即可使用,只要包含GPL产品的任何源代码也在遵守GPL的条件范围内被使用即可。这么说吧:你一个子儿不用就能免费下载MySQL。
而且,这并不是说,如果你的数据库用的是MySQL你就必须公开发布你的软件源代码。其实,只有在以下两种情况下你才必须执行GPL:其一是,从功能上说,MySQL代码是你的软件所必要的组成部分,其二是你随同自己的软件分派这种RDMS。而在商务或者个人自用的情况下就没有任何限制了,不过,使用MySQL的许多公司通常会采取专有许可协议防止软件源代码的泄露。专有许可协议可以按每一数据库服务器为单位购买,一个单位的起步价大约是200美元(如果按卷分发许可协议的话这个价格也可能会更低一些)。
--------------------------------------------------------------------------------
遵照GPL采用MySQL的网站示范
Slashdot—技术人员新闻站点
PHP-Nuke—网站管理系统
Freshmeat.net—软件目录
Linux.com—Linux新闻、技巧和下载的门户站点
--------------------------------------------------------------------------------
然而,MySQL也有个最令人头痛的问题:它没有完全地遵守ANSI SQL标准。如果你特别在意这个问题而且为此忧心忡忡,那我建议你不妨读一读Michael M. Gorman撰写的有关文章。这篇论文阐述了ANSI SQL标准的有效性,因为——说老实话,没有一个数据库系统老老实实遵守了SQL99规范。
[!--infotagslink--]

相关文章

  • Java8 实现stream将对象集合list中抽取属性集合转化为map或list

    这篇文章主要介绍了Java8 实现stream将对象集合list中抽取属性集合转化为map或list的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05
  • java8如何用Stream查List对象某属性是否有重复

    这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
  • 解决:failed to open stream: No such file or directory in

    本教程来给各位同学介绍failed to open stream: No such file or directory in解决办法,有需要了解的朋友可进入参考。 Warning: include_once(./include/main.i...2016-11-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • c++中的system("pause")的作用和含义解析

    这篇文章主要介绍了c++中system("pause")的作用和含义,非常不错,具有参考借鉴价值,需要的朋友参考下吧...2020-04-25
  • 解决Pycharm的项目目录突然消失的问题

    今天小编就为大家分享一篇解决Pycharm的项目目录突然消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-22
  • pycharm2021激活码使用教程(永久激活亲测可用)

    pycharm2021激活码是一个可以轻松帮助用户免费激活pycharm2021.1软件的文件,虽然说pycharm现在只是推出了2021.1的EAP版,但是如果你想先率先体验一波,那么就可以利用小编提供的这个激活码来进行使用啦,并这个激活码是永久有效的...2021-03-30
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • pycharm实现print输出保存到txt文件

    这篇文章主要介绍了pycharm实现print输出保存到txt文件,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-02
  • pycharm 实现光标快速移动到括号外或行尾的操作

    这篇文章主要介绍了pycharm 实现光标快速移动到括号外或行尾的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-06
  • 超实用Internet Download Manager(IDM)破解注册码,全版本通用

    IDM下载器是一个十分好用的文件下载工具。IDM下载器它能够帮助你提升5倍的下载速度,强大的续传功能,让你不再担心因网络问题、计算机宕机、停电等原因所造成的数据不全问题,下面小编给大家带来了InternetDownloadManager(IDM)破解注册码,感兴趣的朋友参考下吧...2023-01-06
  • vue项目页面嵌入代码块vue-prism-editor的实现

    这篇文章主要介绍了vue项目页面嵌入代码块vue-prism-editor的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-30
  • PHP用DOM方式处理HTML之《Simple HTML DOM》

    近经常需要采集一些网上的数据,发现一个PHP处理HTML的利器 simple html dom,看了一下文档,使用非常方便,关键是能够用CSS选择器来访问DOM树,和jquery相似,实在是难得的利器...2016-11-25
  • 深入分析C#中WinForm控件之Dock顺序调整的详解

    本篇文章是对C#中WinForm控件之Dock顺序调整进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • PHP编译安装后PHP-FPM使用笔记

    PHP-FPM我们相信各位用高版本的php经常使用到了,下面整理了一些关于PHP-FPM的笔记,有兴趣的可进来看看。 今天赶上了123System OPenVZ VPS全场半价的机会,购入了一...2016-11-25
  • 使用list stream: 任意对象List拼接字符串

    这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
  • WebStorm无法正确识别Vue3组合式API的解决方案

    这篇文章主要介绍了WebStorm无法正确识别Vue3组合式API的解决方案,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下...2021-02-18
  • jQuery 中的 DOM 操作

    在DOM操作中,常常需要动态创建HTML内容,使文档在浏览器里的呈现效果发生变化,并且达到各种各样的人机交互目的....2016-04-27
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06