首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP heredoc输出Bash heredoc块

如何使用PHP heredoc输出Bash heredoc块
EN

Stack Overflow用户
提问于 2013-02-20 00:18:13
回答 1查看 349关注 0票数 2

我需要在网页上显示一个没有任何格式的bash脚本。

当我尝试使用PHP heredoc函数输出脚本时,它在遇到'<<‘子字符串时切断了输出。

如何正确输出此脚本?

代码语言:javascript
复制
<?php

$string = $_GET["string"];

$bashscript = <<<MYMARKER
<pre>

#!/bin/sh
rm /tmp/blue.sh
cat <<INSTALL > /tmp/blue.sh
#!/bin/sh
cd /tmp
mkdir output
cd output
cat <<EOF > interface.conf
remote $string
EOF
INSTALL

</pre>
MYMARKER;

echo $bashscript;

?>

我在页面上得到的输出是

代码语言:javascript
复制
#!/bin/sh
rm /tmp/blue.sh
cat < /tmp/blue.sh
#!/bin/sh
cd /tmp
mkdir output
cd output
cat < interface.conf
remote 
EOF
INSTALL
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-20 00:23:58

这是因为<INSTALL ><EOF >在您的浏览器中被解释为标签(尽管无法识别)。用鼠标右键打开->查看源码,你就会看到它。只需移出<pre>并使用htmlspecialchars()正确显示它:

代码语言:javascript
复制
$bashscript = <<<MYMARKER
... everything without the <pre> tags ...
MYMARKER;

echo '<pre>'.htmlspecialchars($bashscript).'</pre>';
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14962213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档