一直想了解Web编程的技术。PHP是进行Web编程重要的一种语言,书上总是说,PHP是用于服务器端的编程语言。但是,实在不能理解它是怎么用于服务器端编程,如何被运行。也看过一些PHP的教程,大多是介绍语法,却没有给出前面的问题解答。最近东拼西凑的看了一些东西,终于对PHP如何运行有了一些了解。
HTTP协议与PHP脚本的触发
HTTP是一种基于Request/Response的协议,是支持Web运行的协议基础。HTTP的客户端发送Request
到服务器端,服务器端返回Response。Request中包含客户端需要访问的页面的文件名。服务器端返回该文件名指向的网页。如果没有使用PHP、JavaScript等,HTTP协议传输只能是静态的HTML文件。也就是,HTML文件不会受到用户行为的影响,内容一直保持不变。
如果要实现动态网页,就需要使用PHP或JavaScript。PHP是用于服务器端的编程语言,JavaScript是多用于客户端的编程语言。
PHP代码是在服务器端被执行的。用户访问一个包含PHP代码的网页时,发送Request到服务器,其中包含网页的文件名。服务器收到Request后,找到文件名指向的文件,发现其中嵌有PHP代码,会调用PHP解释器处理该文件,然后将处理后的结果整理到Response,发送到客户端。PHP代码可以与服务器端的数据库或其他资源进行交互,或者根据用户的操作产生不同的页面。
因此,PHP脚本的触发是在服务器收到客户端的Request。收到一个Request后,服务器触发一个PHP脚本;处理完脚本后,返回结果到客户端,等待下一个Request。当收到下一个Request后,服务器触发另一个(或同一个)PHP脚本。两次PHP脚本的运行是相互独立的,第二次脚本的运行几乎不受前一次脚本运行的影响。
JavaScript代码一般是在客户端被执行的,即被浏览器所处理。客户端从服务器端获取的是JavaScript代码,而不是代码被执行后的结果,然后调用解释器执行该代码。
PHP的代码块
PHP代码是可以嵌入到HTML文件中的,经常可以在HTML文件中看到散落在各处的PHP代码块。我也一直困惑在同一个HMTL文件中,不同的PHP代码块之间是怎样的关系。原来PHP是会忽略两个PHP代码块之间HTML代码的。
<head> <title>Test PHP Multiple Blocks</title> </head> <body> <p>This is HTML code.</p> <?php $var = 1; echo "<p>This is PHP code block 1. <br/> \$var=$var </p>"; ?> <p>This is HTML code too.</p> <?php $var += 1; echo "<p>This is PHP code block 2. <br/> \$var=$var</p>" ?> </body>
代码中有两个PHP代码块,它们被HTML代码隔开了。第1个PHP代码块声明了1个变量$var;第2个代码块引用$var,进行改变了它的值。用PHP执行上述代码,得到的输出如下。
<head> <title>Test PHP Multiple Blocks</title> </head> <body> <p>This is HTML code.</p> <p>This is PHP code block 1. <br/> $var=1 </p> <p>This is HTML code too.</p> <p>This is PHP code block 2. <br/> $var=2</p> </body>
第2个代码块是可以引用$var的。虽然被HTML代码隔开了,但是两段代码的执行完全忽略了HTML部分。PHP的输出与下面没有被HTML隔开的PHP代码是一样的,前者只是在PHP输出结果之间插入了相应的HTML代码。
<?php $var = 1; echo "<p>This is PHP code block 1. <br/> \$var=$var </p>"; $var += 1; echo "<p>This is PHP code block 2. <br/> \$var=$var</p>" ?>
我知道甚至这个问题已经被提出了几次,但没有找到解决这个问题的方法。我使用的编译命令:。我使用的运行命令: 错误:
我一直试图使用JDBC在JAVA中创建一个简单的数据库应用程序。到目前为止,我所有的尝试都没有成功,甚至在加载驱动程序。了解我是Java新手,刚刚开始学习。以下是我的步骤: 程序总是给出这个例外: 线程“main”Java.lang.ClassNotFoundException:com.microsoft.sqlServer.jdbc.sqlServerDriver在Java.net.URLCla
我有一颗豆子和一条小溪 并且希望对返回TokenBag的另一个对象流的流应用一些中间操作。在这个例子中必须有两个:("a",3),("b",3)和("a",2)。 请把它看作一个非常简单的例子。在现实中,会有比仅仅计算一行中相同的值更复杂的逻辑。事实上,我试图设计一个简单的解析器,它接受一个令牌流并返回一个对象流。 另外,请注意,它必须保持为一个流(没有中间累加),而且在本例中,它必须在一行中真正
本文向大家介绍PHP执行普通shell命令流程解析,包括了PHP执行普通shell命令流程解析的使用技巧和注意事项,需要的朋友参考一下 这里演示一些普通的shell命令 php执行shell命令,可以使用下面几个函数: string system ( string $command [, int &$return_var ] ) string exec ( string $command [,
问题内容: 我想学习PHP,并希望获得有关OOP和过程的想法。我还阅读了其他有关OOP与程序的博客和教程,但我仍然不理解这种方法。 OOP与程序 我应该学习哪个? 代码有什么区别?有什么影响? PHP框架如何帮助OOP?(我想学习CodeIgniter) 程序是否需要框架? 我真的很想知道两者的代码区别,我对OOP的理解是您创建了类似的类并且可以访问。(我不知道是否正确)。 谢谢! 问题答案: 背
问题内容: 我在Arch Linux上,我刚刚安装了JRE和JDK,所有正确的bin文件(javac和java)都在/ opt / java / bin /中 我只是编译了一个标准的hello世界,并在运行javac的情况下对其进行了编译,从而创建了一个类。 现在我的问题正在运行。我运行java ./helloworld.class,即使我指向java的文件不存在,它也会给我一个错误: 您会注意到