php定界符<<<EOF讲解

本文介绍了PHP中Heredoc技术的基本概念及其使用方法。通过实例详细展示了如何利用Heredoc技术来输出大量的HTML代码,使得代码更加简洁易读。

Heredoc技术。可用来输出大段的html和javascript脚本

1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西; 
2.在PHP定界符中的任何特殊字符都不需要转义; 
3.PHP定界符中的PHP变量会被正常的用其值来替换。 
如下:

<?php
    $name = '浅水游';
    //下面<<<EOT后面不能有空格
    print <<<EOT
            <html>
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
            <title>Untitled Document</title>
            </head>
            <body>
            <!--12321-->
            Hello,{$name}!
            Hello,$name!
            </body>
            </html>
EOT; //注意末尾的结束符必须靠边,其前面不能有空格

?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
<?php
$out = 
<<<EOF
    <a href="javascript:edit('asd', 'aaa')">编辑</a> |

    <font color="#ccc">删除</font>

    <a href="javascript:confirmurl('?m=admin&posid=12')">删除</a> |

    <font color="red">启用</font></a> |  

    <a href="javascript:preview('3','ds')"><font color="green">演示</font></a>
EOF;

echo $out;
?>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

注意:

1.以<<<End开始标记开始,以End结束标记结束,**结束标记必须顶头写**,不能有缩进和空格,且在结束标记末尾要有分号 。

2.开始标记和开始标记相同,比如常用大写的EOT、EOD、EOF来表示,但是不只限于那几个,只要保证开始标记和结束标记不在正文中出现即可。

3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符.或,来拼接,如下:
$v=2;
$a= <<<EOF
"abc"$v"123"
EOF;
echo $a; //结果连同双引号一起输出:"abc"2 "123"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
4.heredoc常用在输出包含大量HTML语法d文档的时候。比如:函数outputhtml()要输出HTML的主页。可以有两种写法。很明显第二种写法比较简单和易于阅读。
第一种

function outputhtml(){
    echo "<html>";
    echo "<head><title>主页</title></head>";
    echo "<body>主页内容</body>";
    echo "</html>;
}
第二种
function outputhtml()
{
    echo <<<EOT
    <html>
    <head><title>主页</title></head>
    <body>主页内容</body>
    </html>
EOT;
}
outputhtml();
`sbatch <<EOF` 是在使用 Slurm 作业调度系统时,用于提交批处理作业脚本的一种方式。 ### 含义 - `sbatch`:这是 Slurm 系统中用于提交批处理作业的命令。用户可以通过该命令将作业脚本提交给 Slurm 调度器,由调度器根据系统资源情况安排作业的执行。 - `<<EOF`:这是一种被称为“Here Document”(此处文档)的语法。它允许用户在命令行中直接嵌入多行文本,这些文本通常作为命令的输入。`EOF` 是一个自定义的分隔符,用户可以使用其他任意字符串来替代,但通常约定使用 `EOF`(End Of File)。当遇到与分隔符相同的字符串(这里是 `EOF`)时,`Here Document` 结束。 ### 使用方法 以下是一个使用 `sbatch <<EOF` 提交作业的示例: ```bash sbatch <<EOF #!/bin/bash #SBATCH --job-name=myjob #SBATCH --output=myjob.out #SBATCH --error=myjob.err #SBATCH --ntasks=1 #SBATCH --cpus-per-task=1 #SBATCH --time=0:10:00 # 以下是作业要执行的命令 echo "Hello, World!" sleep 10 EOF ``` 在这个示例中: 1. `#!/bin/bash`:指定脚本的解释器为 Bash。 2. `#SBATCH` 开头的行是 Slurm 作业的参数设置: - `--job-name=myjob`:设置作业的名称为 `myjob`。 - `--output=myjob.out`:将作业的标准输出重定向到 `myjob.out` 文件。 - `--error=myjob.err`:将作业的错误输出重定向到 `myjob.err` 文件。 - `--ntasks=1`:指定作业需要的任务数量为 1。 - `--cpus-per-task=1`:指定每个任务需要的 CPU 核心数为 1。 - `--time=0:10:00`:设置作业的最长运行时间为 10 分钟。 3. `echo "Hello, World!"` 和 `sleep 10` 是作业要执行的具体命令,这里先输出 `Hello, World!`,然后暂停 10 秒。 4. 最后以 `EOF` 结束 `Here Document`。 ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值