首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当使用fsockopen打开php页面时,如何获得输出?

当使用fsockopen打开php页面时,如何获得输出?
EN

Stack Overflow用户
提问于 2014-10-03 04:38:09
回答 1查看 3.9K关注 0票数 1

当我使用fsockopen打开一个php页面时,代码可以正常工作,但是还有其他一些问题。例如:如果我在b.php中打开a.php,"echo“在b.php中也不起作用,错误消息也不起作用(这两种东西在普通页面上都能正常工作)。这使得调试非常困难。如何在b页中获得输出?

非常感谢!这是我的密码。我使用main.php来调用main_single_block.php.PS:除了上面提到的两件事之外,所有事情都正常工作。

main.php:

代码语言:javascript
运行
复制
$template_url_arr_s = serialize($template_url_arr);
$fp = fsockopen($sochost, intval($socportno), $errno, $errstr, intval($soctimeout));
if (!$fp) {
    echo "$errstr ($errno) ,open sock erro.<br/>\n";
}
$typename=  urlencode($typename);//do url encode (if not, ' 'can not be handled right)
$template_url_arr_s=  urlencode($template_url_arr_s);
*$out = "GET /main/main_single_block.php?typename=" . $typename . "&templateurlarr=" . $template_url_arr_s . "\r\n";*
fputs($fp, $out);
fclose($fp);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-03 15:49:35

以下是基本结构:

代码语言:javascript
运行
复制
template_url_arr_s = serialize($template_url_arr);
$fp = fsockopen($sochost, intval($socportno), $errno, $errstr, intval($soctimeout));
if (!$fp) {
    echo "$errstr ($errno) ,open sock erro.<br/>\n";
}
$typename=  urlencode($typename);//do url encode (if not, ' 'can not be handled right)
$template_url_arr_s=  urlencode($template_url_arr_s);
$out = "GET /main/main_single_block.php?typename=" . $typename . "&templateurlarr=" . $template_url_arr_s . " HTTP/1.1\r\nHost: $sochost\r\nConnection: close\r\n\r\n";
fputs($fp, $out);
// First read until the end of the response header, look for blank line
while ($line = fgets($fp)) {
    $line = trim($line);
    if ($line == "") {
        break;
    }
}
$output = '';
// Read the body of the response
while ($line = fgets($fp)) {
    $output .= $line;
}
fclose($fp);

我已经将HTTP/1.1参数添加到GET行的末尾、所需的Host:头和Connection: close头中,因此不需要解析响应的Content-Length:头。

一个真正的应用程序应该解析响应头,上面的代码只是略过它们。标题以空行结束,然后将输出的其余部分收集到变量中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26173349

复制
相关文章

相似问题

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