您好我正在使用php系统嵌入像这样的cgi脚本
<?php echo system('./cgi-bin/rebol-include.cgi'); ?>
问题是我的cgi-script写道
print "content-type: text/html^/"
以便PHP显示
"content-type: text/html"
在html页面上方。这是一个不需要的人工制品,删除它的最佳方法是什么,知道整个html页面是从嵌入php的cgi返回的?
答案 0 :(得分:1)
系统可以用后面的刻度“”替换,后面的刻度可以插入到子串中。
所以
<?= substr(`./cgi-bin/rebol-include.cgi`, strlen('content-type: text/html^/')) ?>
这应该为您提供“内容类型”之后的所有内容。
答案 1 :(得分:1)
不是在脚本中打印出内容,而是将其作为字符串返回。然后echo实际上会完成它的工作。 还可以使用 strip_tags()解析整个内容,或者如果想要删除HTML,则可以解析。
答案 2 :(得分:1)
您是否尝试过使用virtual()而不是system()?
virtual()是特定于Apache的 功能类似于 在 mod_include负责。它执行Apache 子请求。它很有用 包括CGI脚本或.shtml文件, 或者你要解析的任何其他内容 通过Apache。请注意,对于CGI 脚本,脚本必须生成有效 CGI标题。至少这意味着 它必须生成Content-Type 报头中。