Ada*_*dam 0 html php rendering
在PHP中,您可以使用PHP编写html ,例如:
<html>
<head>
<?php echo "HTML Title from PHP "; ?>
</head>
<body>
<h1>hello world!</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想知道这是什么,它是如何工作的,写的是什么,我需要多深才能理解它?
现在我听说模板引擎,但是PHP也有很多模板引擎,所以在我理解的模板引擎上编写模板引擎听起来很愚蠢(对我来说),模板引擎解析整个文件只是为了替换命令,然后它也开始输出文件内容,所以我觉得它不是系统的一部分,从而失去了性能.(也许我完全错了,但严肃地说,这就是我听到它时的感受:P)
伙计们,当我说什么呈现HTML时,我的意思是什么在PHP中呈现HTML?在node.js文件中,您无法编写任何HTML,因为没有任何处理它.
试图避免过多的信息,但这是在Linux上与Apache一起使用时PHP的完整周期.
常见的服务器设置称为LAMP堆栈,代表Linux,Apache,Mysql和PHP.通常,您可以找到许多随时可用的LAMP堆栈设置以及使用它们的指南,因此在您的问题的上下文中,您需要关注的是Apache和PHP.
当Web浏览器通过PHP联系运行Apache的Web服务器时,第一步是让Apache找到所需的内容.假设您访问www.mywebsite.com/hello.php,Apache将会看到您正在寻找一个名为hello.php的文件.此时,由于后缀(.php),Apache知道这个文件需要由PHP解释,因此它将处理委托给PHP解释器.
从Apache到PHP的交接包括一系列标题,告诉PHP以下内容:正在处理什么类型的事务(GET/POST/PUT/DELETE),传入请求的IP地址,浏览器的用户代理(Firefox, MSIE,IPhone等),如果有cookies.更重要的是,Apache向PHP提供了服务器上hello.php文件的路径.
根据配置,PHP可能需要做一些基本的内务处理(设置自己),但在理想的条件下它准备就绪并打开hello.php PHP的一部分是一个名为lexer的模块,它查看hello.php并弄清楚如何处理文件.通过提供的示例,一个非常简单的示例可能如下所示:
注意,我已经编写了大部分T_代码,但它们非常接近真实的代码.
第1行 - PHP知道它超出了所谓的范围,因此它立即将整个字符串传递给Apache,即Web服务器.Apache很可能会将整个字符串传递到Web浏览器上.
第2行. - T_OPEN_TAG告诉PHP它进入PHP范围并等待它的第一条指令.
第3行--T_ECHO告诉PHP它将创建一个echo语句,因此它的规则然后启动以查找要输出的表达式或字符串.
第4行 - 幸运的是,下一个标记是一个字符串,所以PHP现在知道它将回应"来自PHP的HTML标题"
第5行 - ; 告诉PHP,echo语句是完整的,更重要的是这在语法上是正确的......所以PHP将字符串"HTML Title from PHP"传递给Apache,它将这个传递给浏览器.
第6行 - Close?>标签告诉PHP它正在离开PHP语言范围,因此它可以回到更简单的规则集
第7行 - 与第1行一样,整个字符串传递给Apache以传递给Web浏览器
此时,PHP到达所谓的EOF或文件结尾,并知道它已经完成了处理文件hello.php.它会进行清理工作,然后告诉Apache它已完成.
此时请求已基本完成,Apache很可能会挂起在Web浏览器上,发送所有内容完整的通知.
如果您有任何问题或需要有关下一步的指示,请告诉我.另请注意,为了简洁/理智,此处还有很多细节,但为了了解鸟类如何看待PHP与Web浏览器和Web服务器的关系,这应该足以开始了.
$test = 'Hello world <' . '?' . 'php echo \'this is in scope\'; ?' . '> and we\'re done';
$tokens = token_get_all($test);
print_r($tokens);
Run Code Online (Sandbox Code Playgroud)
输出将是PHP生成的真实世界标记字符串.每个标记可以是一个字符串或三元素元组/数字数组,其中索引0 = =标记ID,索引1 ==原始字符串,我不能为我的生活记住第三个元素是什么.如果您对每个令牌的名称感到好奇,请使用token_name.
| 归档时间: |
|
| 查看次数: |
3375 次 |
| 最近记录: |