gpt4 book ai didi

php - 如何使用 PHP heredoc 输出 Bash heredoc block

转载 作者:行者123 更新时间:2023-12-04 05:10:44 26 4
gpt4 key购买 nike

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

bash 脚本使用标准的“此处文档”块。当我尝试使用 PHP heredoc 函数输出脚本时,它会在遇到 '<<' 子字符串时切断输出。我认为 PHP heredoc 函数不需要转义。

如何正确输出此脚本?

<?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;

?>

我在页面上得到的输出是
#!/bin/sh
rm /tmp/blue.sh
cat < /tmp/blue.sh
#!/bin/sh
cd /tmp
mkdir output
cd output
cat < interface.conf
remote
EOF
INSTALL

最佳答案

那是因为 <INSTALL ><EOF >在浏览器中被解释为标签(虽然无法识别)。右键单击打开它 -> 查看源代码,你会看到它。
刚搬出<pre>并使用 htmlspecialchars() 正确显示它:

$bashscript = <<<MYMARKER
... everything without the <pre> tags ...
MYMARKER;

echo '<pre>'.htmlspecialchars($bashscript).'</pre>';

关于php - 如何使用 PHP heredoc 输出 Bash heredoc block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14962213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com