php heredoc

STRING数据库的蛋白质相互作用(PPI)网络分析 在转录调控相关的文献中,我们经常能够看到这样的蛋白质相互作用网络(protein protein interaction network,PPI network)。具体而言,这些相关的文献中首先通过RNA-seq、表达谱芯片或者蛋白质组分析等,找到了在不同分组样本间一系列的差异表达基因或蛋白。 阅读详情

php中heredoc技术用法详解:
php中的heredoc技术在一些PHP文档和书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术,没有做过多的介绍, 没有介绍不代表它不重要,它能很好的来实现模板与代码的分离.
看下面的代码:
<?php
$name = 'php自学网';
print <<<EOT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>php中heredoc技术用法详解-php自学网</title>
</head>
<body>
Hello,$name!
</body>
</html>
EOT;
?>
1.以<<<End开始标记开始,以End结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号。开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。
2.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。
3.heredoc常用在输出包含大量HTML语法d文档的时候。比如:函数outputhtml()要输出HTML的主页。可以有两种写法。很明显第二种写法比较简单和易于阅读。
function outputhtml(){
echo "<html>";
echo "<head><title>php自学网首页</title></head>";
echo "<body>首页内容</body>";
echo "</html>;
}
function outputhtml()
{
echo <<<EOT
<html>
<head><title>php自学网首页</title></head>
<body>首页内容</body>
</html>
EOT;
}
outputhtml();

例子二

定义了一个函数template
[php]function template($template, $EXT='htm') {
 $path = "template/$template.$EXT";
 return $path;
}[/php]

index.php

[php]<?php
$title = "This is title";
$content = "Heredoc";

include template('index');
?>[/php]

index.htm

<!--<?php print <<<EOT

-->

<html>

<head><title>$title</title></head>

<body>

$content

</body>

</html>

<!--

EOT;

?>-->

php程序界有很多种模板技术和方法;但使用起来大多不太方便。
我经过思考和测试,发明了一种简单而巧妙的方法。

我的目标是:把html从php中分离出来,并且html中不包含php控制程序。

在php4中,提供了print<<< HTML 功能。举例如下:

$data="这里是内容";
print<<< HTML
$data
HTML;
?>
输出:这里是内容。
另外一方面,php中有函数eval()。它能够执行php代码。我们就结合上述
知识来建立一个通用的函数getTpl().如下:

下面是demo.php

<?php

function getTpl($tplname,$EXT='.htm')
{
extract($GLOBALS);
$path=$tplname.$EXT;
eval_r("print<<< EOT\n".readfn($path)."\nEOT;\n");
}

function readfn($fn)
{
$fp=fopen($fn,"rb");
return fread($fp,filesize($fn));
fclose($fp);
}

$title='这是标题';
$data='这里是内容';

getTpl('demo');

?>
下面是demo.htm

<html>
<head>
<title> $title </title>
</head>

<body>
<b>$title</b>
<p>$data
</body>
</html>

经过这样的处理后,在demo.htm中只有php要替换的变量,而没有任何其他php的多余代码了。
这样以来,外观和程序逻辑就得以完全分离,为网站的修改和后期维护提供了方便之门!
注:以上方法分离了php和html,代表了显示和逻辑的分离。但是以失去复杂控制为代价的。

定界符
另一种给字符串定界的方法使用定界符语法(“<<<”)。应该在 <<< 之后提供一个标识符,然后是字符串,然后是同样的标识符结束字符串。

结束标识符必须从行的第一列开始。同样,标识符也必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。


警告
很重要的一点必须指出,结束标识符所在的行不能包含任何其它字符,可能除了一个分号(;)之外。这尤其意味着该标识符不能被缩进,而且在分号之前和之后都不能有任何空格或制表符。同样重要的是要意识到在结束标识符之前的第一个字符必须是你的操作系统中定义的换行符。例如在 Macintosh 系统中是 \r。

如果破坏了这条规则使得结束标识符不“干净”,则它不会被视为结束标识符,PHP 将继续寻找下去。如果在这种情况下找不到合适的结束标识符,将会导致一个在脚本最后一行出现的语法错误。

不能用定界符语法初始化类成员。用其它字符串语法替代。 例子 11-3. 非法的例子

<?php
class foo {
public $bar = <<<EOT
bar
EOT;
}
?>


定界符文本表现的就和双引号字符串一样,只是没有双引号。这意味着在定界符文本中不需要转义引号,不过仍然可以用以上列出来的转义代码。变量会被展开,但当在定界符文本中表达复杂变量时和字符串一样同样也要注意。例子 11-4. 定界符字符串例子

<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;


class foo
{
var $foo;
var $bar;

function foo()
{
$this->foo = 'Foo';
$this->bar = array('Bar1', 'Bar2', 'Bar3');
}
}

$foo = new foo();
$name = 'MyName';

echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

实例:

一、目录规划

phpLearn

 |----Templates

 ----index.html

 |----index.php

二、PHP文件

index.php中给变量赋值,同时包含模板

<?php

$userNum1 = '123';

include ('Templates/index.html'); //包含模板

?>

三、模板文件

index.hhtml

<!--<?php
echo <<<EOT
-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>-----------------------</title>
</head>

<body>
<br>
<br>
$userNum1 //使用变量

<br>

</body>
</html>
<!--
EOT;
?>
-->

总结:

1、echo <<<EOT 与 EOT;是成对出现的。如

<!--
echo <<<EOT
-->
//在此处可以有HTML元素

<!--
EOT;
//在此处有PHP语法式的语句。

echo <<<EOT
-->

2、html模板内目录 以php文件所在的目录(路径) 为准。
3、html模板与php分离,可以不使用$_GET或则$_POST方法。直接使用名称作为变量

以上为使用heredoc模板的基本思路与方法总结

使用php模板才能真正使自己从面向过程的编程渐渐转向面向对象的编程过程中。

IPCP(IP Control Protocol,IP控制协议) 阅读详情

相关推荐

遗传算法详解 附python代码实现

遗传算法 遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:”适者生存,不适者淘汰“,将该理论以算法的形式表现出来就是遗传算法的过程。 问题引入 上面提到遗传算法是用来解决最优化问题的,下面我将以求二元函数: def F(x, y): return 3*(1-x)**2*np.exp(-(x**2)-(y+1)**2)- 10*(x/5 - x**3......

ha_ha_ha233的博客 22万+

php heredoc用法,PHP heredoc 用法

php 中的 heredoc技术是php用来引用字符串的一种方式。在phpwind中巧妙的运用了这个技术,实现了逻辑代码和界面设计的分离。语法:1. 使用操作符 “<<2. 操作符后紧跟标识符(开始标识符),之后重起新的一行 输入要引用的字符串,可以包含变量。3. 新的一行,顶格写结束表示符,以分号结束。要注意到几点:1.标识符可以自定义 一般的 有EOT ,EOD EOF 等, ...

weixin_31968223的博客 1117

卫星载荷应用方案

本文将从技术和应用层面探讨卫星载荷的应用方案,分析各个领域的特点和挑战,以期为卫星载荷的应用提供一定的指导和参考。卫星载荷应用方案涵盖了通信、地球观测、气象预报、导航定位等诸多领域在每一个领域中,都存在着不同的技术挑战和应用需求。随着技术的进步和需求的变化,卫星载荷应用方案将不断发展和完善,为人类社会的进步和发展做出更大的贡献。用户可以通过接收多颗卫星的信号,计算自身的位置和速度信息。在覆盖扩展方面,可以采用多星座、MEO、GEO 等不同轨道高度的卫星布局,结合卫星的特点和应用需求,实现覆盖范围的扩展。

muyangjun的专栏 904

详解heredoc (PHP)

php中heredoc技术用法详解: php中的heredoc技术在一些PHP文档和书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术,没有做过多的介绍, 没有介绍不代表它不重要,它能很好的来实现模板与代码的分离. 看下面的代码: $name = 'php自学网'; print php中heredoc技术用法详解-php自学网 Hello,

zouhui17的专栏 655

IAR下载Linux环境适配:入门级安装指导

详细介绍如何在Linux系统中完成iar下载与环境配置,帮助开发者快速上手IAR集成开发环境,解决常见安装问题,提升开发效率。

weixin_35754676的博客 758

医学图像分割评价指标详解:从Dice到MSD的实战解析

本文深入解析医学图像分割的核心评价指标,从最常用的Dice相似系数到衡量边界精度的MSD(最大对称表面距离),通过实战案例与代码演示,系统阐述各指标的计算原理、应用场景及临床意义,帮助读者全面评估模型性能。

weixin_29070721的博客 593

PHP EOF(Heredoc)使用说明

Heredoc 是一种特殊的字符串字面量,允许你以类似于文件的方式包含多行文本。在 Heredoc 结构中,字符串的起始标记后面跟上一个唯一的标识符(通常是 EOF),然后是字符串的内容,最后以相同的标识符结束字符串。

Perfect—完美的博客 1231

PCB仿真软件:Altium Designer_(6).PCB布线设计:自动布线与手工布线

通过以上步骤,我们完成了一个简单的PCB设计案例。在这个过程中,我们使用了自动布线和手工布线的综合策略,确保布线质量符合设计要求。创建PCB项目:在Altium Designer中创建一个新的PCB项目。导入原理图:将原理图文件导入到PCB项目中。设置布线规则:通过设置必要的布线规则,如线宽、间距等。启动自动布线:使用自动布线器进行初步布线。手工优化布线:通过手工布线工具优化关键信号的布线路径。保存和导出PCB文件:保存PCB文件并导出Gerber文件,用于生产。

kkchenjj的博客 2522

PHP EOF(heredoc) 使用说明

在 PHP 中,heredoc是一种用来表示长字符串的语法结构,它允许你创建包含多行文本的字符串而无需使用引号或转义特殊字符。heredoc结构以<<<开始,后跟一个标识符(通常是任意的字母、数字或下划线组成的字符串),并且以相同的标识符结束。标识符必须在行的起始位置,并且后面不能有任何空格或其他字符。

w3school52的博客 780

IMEI引起的无法驻网问题

问题不复杂,场景很简单,如上图,UE在进行LTE attach过程时,在送完NAS security mode complete后,就立刻收到了网络attach reject 带cause 6 Illegal ME,根据协议描述这个cause 代表ME不被网络可接受,例如ME在禁止名单或者黑名单中就会有这种cause。然而前方在报这个问题的时候,也是知道SIM卡和手机IMEI在运营商那边没能成功绑定,然后才报的问题,要查看手机是不是有问题...... 告诉前方原因后,还认为是手机问题,告知要继续查。

asd199086的博客 1425

嵌入式工程师成长之路(1)——元件基础(试读版)

上拉电阻阻值选错导致MCU反复重启?0欧电阻竟然能“背锅”信号干扰?高精密采样电阻的温漂毁了整个控制系统?——这些问题,都是基础不牢!优快云硬件领域头部博主十年经验汇总,涵盖电阻分类、封装、实战选型、避坑指南,附带职业进阶路径,助你从小白进阶为“电路医生”!

云轩阁 34万+

php heredoc 变量,php heredoc 与 nowdoc

php heredoc 与 nowdocheredoc 结构heredoc 句法结构:<<$content = <<testblogFDIPZONE;echo $content;?>heredoc 结构不能用来初始化类的属性。自 PHP 5.3 起,此限制仅对 heredoc 包括变量时有效。下例将会出错。class test{public $var = '123';...

weixin_42308335的博客 236

ICC2:平行打孔create_pg_stapling_vias

power rail(follow pin)不总是metal1一成不变的,当需要使用metal2做power rail,而standard cell的pg pin仍然是metal1时就需要平行打孔,从metal2到metal1。 以往都是用create_pg_vias -allow_parallel_objects来做,但这样有两个弊端,一是需要抓出所有的via12(包括standard cell内部的和出pin绕线产生的),添加routing blockage,防止create pg via的时候产生d

m0_61544122的博客 2256

php中heredoc的使用方法

Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。 如下: <?php $name = '浅水游'; print <<<EOT Untitled Docum

followingturing 追随图灵的路上... 1037

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

php heredoc 开启,php heredoc

一、heredoc属性:heredoc:打印大段文本或者HTML代码:1、对于需要用到大段文本或者HTML代码的地方,尤其是里面有大量的单引号、双引号的时候,可以使用heredoc技术来简化。2、heredoc是PHP使用字符串的一种方式。二、heredoc注意点:1、开始标记和结束标记使用相同的字符串,通常以大写字母来写(当然小写也没关系)。2、开始标记后不能出现空格或多余的字符。3、结束标记必...

weixin_35075740的博客 172

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

PHP heredoc 报错问题

<?php echo <<< HTML 输入拒绝信息: HTML; ?> 与 <?php echo <<< HTML 输入拒绝信息: HTML; 后者将会报错, 原因:当HEREDOC在PHP最后时,PHP的闭合标签不能隐藏。否则会报错。

u011725111的博客 568

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

php中heredoc与nowdoc的使用方法

Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义。其结构中的变量将被替换,但在 heredoc 结构中含有复杂的变量时要格外小心。 在 PHP 5.3.0 及其以后的版本中增加了nowdoc结构,其用法和heredoc相同,不同的是Nowdoc 结构是类似于单引号字符串的。nowdoc 中不进行解析操作。这种结构很适合用于嵌入 PHP 代码或其它大段文本而无需对其中的特殊字符进行转义。

web开发成长过程 4507

PHP HEREDOC

本文介绍了PHP HEREDOC 技术的使用方法。

lcy_ltpsr的专栏 425

php heredoc 开启,php heredoc 与 nowdoc

在PHP开发中我们会很经常的使用到html,有时候是很大一段html,直接在PHP中去编写html很是不方便,相信很多同学都遇到过,不用担心PHP中的定界符heredoc和nowdoc会帮助我们的,那就让我们一起来看看吧!php heredoc 与 nowdocheredoc 结构heredoc 句法结构:<<$content = <<test blogFDIPZONE;...

weixin_39709367的博客 157

heredoc php,php中heredoc的方法(EOF)详解

Heredoc技术,在大多数的编程实例中,一般只介绍了一种Perl风格的字符串输出技术。现在很多的php程序中,都巧妙的使用heredoc技术,部分实现界面与代码的准分离,其中phpwind模板就是典型的应用例子。例如:$name = '脚本 学堂';print <<www.jbxue.comHello,$name!EOT;?>说明:1,以<<2,位于开始标记和结束标...

weixin_34306878的博客 307

PHP第六天 heredoc

11.1.3.heredoc字符串 形式:$s1 = <<<“标识符” 这里写字符内容,可以多行写 标识符; 特点: 1,特点跟双引号字符串一样! 注意: 标识符结束那一行,只能出现标识符及紧挨着的分号,任何其他字符都不可以出现。 11.1.4.nowdoc字符串 形式:$s1 = <<<‘标识符’ 这里写字符内容,可以多行写 标识符; 特点:无特...

fly 486

PHP heredoc 用法

PHP heredoc 用法      php 中的 heredoc技术是php用来引用字符串的一种方式。在phpwind中巧妙的运用了这个技术,实现了逻辑代码和界面设计的分离。 语法:   1. 使用操作符  “ 2. 操作符后紧跟标识符(开始标识符),之后重起新的一行 输入要引用的字符串,可以包含变量。 3. 新的一行,顶格写结束表示符,以分号结束。 要注意到几点:   1

萧刚 467

php中heredoc与nowdoc的区别

php中heredoc与nowdoc的区别  heredoc技术是php中用来引用字符串的一种方式     1.标识符可以自定义 一般的 有EOT ,EOD  EOF 等, 只有保持开始表示符和结束表示符一样即可。     2.结束表示符必须独占一行,且必须顶格写,不能有空格,最后以 ‘;’ 分号结尾。     3.所有引用的字符串中可以包含变量,无需字符串连接符。   可以看出here

小白 2550

heredoc php,php heredoc的用法举例

本节内容:php heredoc在php编程中,巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。如下:复制代码 代码示例:$name = '浅水游';print <<Untitled DocumentHello,$name!EOT;?>1,以<<2,位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。...

weixin_28835583的博客 204
上一篇: meta中元素释义
下一篇: 单点登录
excel_bat
博客等级 码龄16年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值